【LGame入門學堂006.精靈傳說】我是定時器

來源:互聯網
上載者:User

【LG006.精靈傳說】我是定時器

 

關鍵字:LGame 入門 定時器

笨木頭花心貢獻,啥?花心?不呢,是用心~

轉載請註明,原文地址:http://blog.csdn.net/musicvs/article/details/7530117

 

 

章來聊聊精靈傳說之我是定時器~

木頭慣例,先:

現的效果就是一個精靈不斷地在跑,不斷地跑?你想累死她嗎?~
所以,當然要讓她休息一下喇~於是...
她每隔2秒鐘休息一次...太懶了點吧...

了這麼多,先上代碼,再聽我解釋,主要要解釋兩樣東西:
1. LGame的定時器,LTimer類
2. 鉤子函數

碼裡有一個LMessage控制項,關於它的所有操作,請大家忽略,不要被影響了,它不是本文的研究對象,以後學到控制項的時候再一起探討~

1.定時器。
建定時器很簡單:
  LTimer restTimer = new LTimer(2000);
這樣就建立了一個每隔兩秒執行一次的定時器。
有一點一定要注意,定時器什麼時候開始啟動?當然是由我們來控制喇。
這樣啟動:  resTimer.start();
OK,很簡單吧?

囉嗦一下:
說LTimer是定時器,但是它實際上是不會定做執行任務的。
說得實在一點,它只是一個計時器,唯一能做的就是,告訴你是否到時間了。
比如我們在早上8點50分40秒的時候啟動了上面建立的定時器,在8點50分42秒或之後,你再去問問這個定時器,它就是告訴你,時間已經到了。
麼去問它時間到了沒呢?
很簡單,這樣:restTimer.action(現在的時間);
至於現在的時間怎麼獲得?不是本文討論的範圍咯,其實你可以從代碼中發現的~

2.鉤子函數。
糕,什麼是鉤子函數?怎麼聽起來這麼複雜~
不怕,你遇到高手了~我寫畢業論文的時候有研究了一下下鉤子函數的~
專業的解答,請百度一下,小弟只是通俗地說一下~
鉤子,顧名思義,就是鉤住你,是你身體以外的東西~
比如,一個鉤子鉤住你的手,那麼,你的手抬起來的時候,這個鉤子也被抬起來了~

白了?~好吧,再來~
鉤子函數,其實就是一個空函數,比如:
public void onCreate() {
  init();
  showScreen();
  hook();   // 我是鉤子
}

個onCreate函數每次執行的時候都會調用一個hook()函數,其實這個函數什麼都沒做,這個函數是用來被重寫的~
呐,現在明白了吧?~我們只要重寫hook函數,就能在onCreate函數執行的時候做一些我們想做的事情~

囉嗦一下:
,那有沒有人想問我,為什麼不直接重寫onCreate函數:
public void onCreate() {
  super.onCreate();
  // 在這裡做我們想做的事情
}
人理解的話,這樣做有危險,萬一有些人,他就是不調用super.onCreate()怎麼辦?
那樣我本身onCreate函數需要做事情就沒有完成,這樣就會造成程式出問題。
而使用鉤子的話,onCreate函數本身要完成的事情一定會被執行的,所以不會出現上面提到的問題~

OK~應該大家都明白了~

3.LGame的Screen的alter函數。
?~怎麼跑出3來了?·不是只有2個嗎?~好吧,不管你~

人理解,alter函數就是一個鉤子,每次重新整理操作(不太確切,反正就當做是線程每次執行的時候)的時候就會被調用,具體怎麼被調用我是不會告訴你的~(因為我自己都沒有去研究~嘿嘿)。
我們可以把判斷定時器是否到時間的操作放在alter函數裡(這個是官方文檔裡舉的一個例子)。
好吧,囉嗦完了~

 

源碼下載:http://download.csdn.net/detail/musicvs/4289619

 

原文第一次發佈於Android-Fans論壇:

http://www.android-fans.net/forum.php?mod=viewthread&tid=1525&page=1&extra=#pid4524

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.