成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Android 調(diào)用update?

移動(dòng)開(kāi)發(fā) Android
怎么能更好的調(diào)用update就可以說(shuō)是整個(gè)游戲的引擎,正是由于它的工作的重要因素,就好比是貪吃蛇正在吃蘋果一樣。

下文詳細(xì)說(shuō)明介紹Android 調(diào)用update的具體學(xué)習(xí)方法以及詳細(xì)工作學(xué)習(xí),當(dāng)休眠的時(shí)間已經(jīng)到了,首先去調(diào)用update,即為下一次繪制做準(zhǔn)備工作,再讓自己休眠起來(lái),***通知系統(tǒng)重繪制自己。

然后等到蘇醒后在Handler中就會(huì)讓系統(tǒng)區(qū)繪制上次修改過(guò)的二維方塊地圖,然后再次Android 調(diào)用update,如此循環(huán)反復(fù),生生不息),才使得游戲不斷被推進(jìn),因此,比做“引擎“不為過(guò)。

既然update是游戲的動(dòng)力,要讓游戲停止下來(lái)只要不再Android 調(diào)用update就可以了(因?yàn)榇藭r(shí)其實(shí)是畫面靜止了),因此游戲進(jìn)入暫停(這個(gè)狀態(tài)還可以轉(zhuǎn)為“運(yùn)行“。其實(shí)就是繼續(xù)可以修改,再繪制)

  1. public void update()  
  2.     {  
  3.         if (mMode == RUNNING)  
  4.         {  
  5.             long now = System.currentTimeMillis();  
  6.             if (now - mLastMove > mMoveDelay)   
  7.             {  
  8.                 clearTiles();  
  9.                 updateWalls();  
  10.                 updateSnake();  
  11.                 updateApples();  
  12.                 mLastMove = now;  
  13.             }  
  14.             mRedrawHandler.sleep(mMoveDelay);  
  15.         } 

若進(jìn)入失敗(其實(shí)此時(shí)二維方塊地圖還停留在***一個(gè)畫面處,這也是為什么在開(kāi)始時(shí)要首先清理掉整個(gè)地圖)【這一點(diǎn),可以在游戲失敗后,再次開(kāi)始新游戲,此時(shí)通過(guò)設(shè)置的斷點(diǎn)即可觀察到上次游戲運(yùn)行時(shí)的底層數(shù)據(jù)】。

可是個(gè)人認(rèn)為Snake下面這段代碼讀起來(lái)有點(diǎn)怪,有點(diǎn)像一個(gè)“先有雞,還是先有蛋?“的問(wèn)題,導(dǎo)致我的思維邏輯上出現(xiàn)一個(gè)“怪圈“。

  1. switch (item.getItemId()) {  
  2.          case MENU_ITEM_DELETE: {  
  3.              // Delete the note that the context menu is for  
  4.              Uri noteUri = ContentUris.withAppendedId(getIntent().getData(), info.id);  
  5.              getContentResolver().delete(noteUri, null, null);  
  6.              return true;  
  7.          }  
  8.      }  
  9.      return false;  

按照這段代碼的意思來(lái)看,當(dāng)休眠的時(shí)間已經(jīng)到了,首先去Android 調(diào)用update,即為下一次繪制做準(zhǔn)備工作,再讓自己休眠起來(lái),***通知系統(tǒng)重繪制自己。哎,這讓我難以理解,還是回到時(shí)刻0的例子來(lái)說(shuō),在時(shí)刻0時(shí)讓蛇身向北前進(jìn)了一步(指的是底層的二維方格地圖的修改,不是界面)。

然后讓自己休眠0.6毫秒,當(dāng)時(shí)間到了,首先去Android 調(diào)用update方法,那么就又會(huì)讓蛇身做出修改,也就是把上一次還沒(méi)繪制的覆蓋掉了(那么上一次的修改豈不是白費(fèi),還沒(méi)畫上去呢)。

更何況在update中又會(huì)讓自己去休眠(還沒(méi)調(diào)用invalidate,怎么又去休眠了?),又怎么還能去通知系統(tǒng)調(diào)用我的onDraw方法呢?也就是說(shuō)invalidate根本沒(méi)有執(zhí)行???按我的理解,應(yīng)該把順序顛倒一下,先通知系統(tǒng)去調(diào)用onDraw方法重繪,使得上一次對(duì)底層二維方格地圖的修改顯示出來(lái)。

然后再去為下一次修改做準(zhǔn)備工作,***讓自己進(jìn)入休眠,等待蘇醒過(guò)來(lái),如此循環(huán)反復(fù)。實(shí)驗(yàn)證明,顛倒過(guò)來(lái)也是正確的,不過(guò)關(guān)于這一個(gè)迷惑我的地方,希望有朋友能指點(diǎn)我一下!記得在javascript里使用setInterval時(shí),也是先寫處理邏輯,然后在末尾處寫上一句setInterval(這也是我習(xí)慣的思維方式了),難道google上面這種寫法有何深意?

此外,感覺(jué)每次繪制時(shí)都重新繪制墻壁,有點(diǎn)浪費(fèi)時(shí)間,因?yàn)閴Ρ诟緵](méi)有任何變化的。還有就是mLastMove這個(gè)變量設(shè)置的初衷是保證當(dāng)前時(shí)間點(diǎn)距上一次變化已經(jīng)過(guò)去了mMoveDelay毫秒,可是既然已經(jīng)用了sleep機(jī)制,再使用這個(gè)時(shí)間差看上去并無(wú)必要。

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析 
  2. Android SMS短信服務(wù)相關(guān)概念簡(jiǎn)述 
  3. PythonAndroid數(shù)據(jù)庫(kù)相關(guān)代碼解讀 
  4. PythonAndroid安裝卸載程序具體操作方法解析 
  5. Android應(yīng)用程序的四個(gè)關(guān)鍵點(diǎn) 
責(zé)任編輯:chenqingxiang 來(lái)源: 人民郵電出版社
相關(guān)推薦

2017-01-13 14:32:50

Azurewebhoo自動(dòng)化AzureWebhook

2009-07-21 09:43:36

調(diào)用UpdatePanASP.NET

2009-11-09 10:50:30

WCF異步調(diào)用

2010-10-08 16:01:17

mysql UPDAT

2021-04-26 05:33:54

Python異步編程

2010-09-27 10:04:30

Sql Update語(yǔ)

2014-02-19 11:00:40

Software UpOS X OS X M

2010-09-17 10:39:36

SQL中

2020-06-30 08:23:00

JavaScript開(kāi)發(fā)技術(shù)

2009-07-14 16:16:04

JDBC update

2010-03-05 16:47:11

Android操作系統(tǒng)

2011-06-30 15:26:28

Update數(shù)據(jù)庫(kù)

2010-09-09 15:04:29

SQL更新語(yǔ)句

2022-12-29 15:55:55

Windows 11

2014-04-08 15:40:57

Windows 8.1

2019-10-18 13:40:10

Windows 10 Windows Up驅(qū)動(dòng)程序

2009-09-21 13:05:18

Hibernate u

2020-09-30 08:07:46

如何優(yōu)化尾調(diào)用

2011-05-30 17:31:51

Android 模擬SD卡

2010-12-12 21:01:00

Android控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩午夜 | 精精精精xxxx免费视频 | 国产成人在线播放 | 中文字幕二区三区 | 精品国产一区探花在线观看 | 中文字幕第一页在线 | 国产精品96久久久久久 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 日韩在线视频免费观看 | 精品欧美一区二区精品久久久 | 久久综合九色综合欧美狠狠 | 国产丝袜一区二区三区免费视频 | 日韩一区av| 日韩喷潮| www狠狠爱com | 日韩欧美国产精品一区二区 | 精品久久精品 | 成人精品视频99在线观看免费 | 国产成人精品福利 | 在线观看中文字幕dvd播放 | 亚洲欧洲精品成人久久奇米网 | 蜜桃免费一区二区三区 | 日本一区二区三区免费观看 | 日韩成人免费视频 | 一区二区免费 | 国产精品精品视频一区二区三区 | 欧美一级在线观看 | 免费精品久久久久久中文字幕 | 奇米四色在线观看 | 欧美a级网站 | 视频在线一区二区 | 中文字幕在线观看第一页 | 欧美伊人久久久久久久久影院 | 天堂久久天堂综合色 | 欧美在线a | 国产精品毛片av | 精品一二三区在线观看 | 国产精品久久久久久久久久久久午夜片 | v亚洲| 国产精品久久久久久久免费大片 | 精品一二三 |