日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何使用Android調(diào)用update?

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

創(chuàng)新互聯(lián)建站長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為福州企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),福州網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

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

既然update是游戲的動力,要讓游戲停止下來只要不再Android 調(diào)用update就可以了(因?yàn)榇藭r其實(shí)是畫面靜止了),因此游戲進(jìn)入暫停(這個狀態(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í)此時二維方塊地圖還停留在***一個畫面處,這也是為什么在開始時要首先清理掉整個地圖)【這一點(diǎn),可以在游戲失敗后,再次開始新游戲,此時通過設(shè)置的斷點(diǎn)即可觀察到上次游戲運(yùn)行時的底層數(shù)據(jù)】。

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

 
 
 
  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;  

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

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

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

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

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

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析 
  2. Android SMS短信服務(wù)相關(guān)概念簡述 
  3. PythonAndroid數(shù)據(jù)庫相關(guān)代碼解讀 
  4. PythonAndroid安裝卸載程序具體操作方法解析 
  5. Android應(yīng)用程序的四個關(guān)鍵點(diǎn) 

本文題目:如何使用Android調(diào)用update?
網(wǎng)站路徑:http://m.5511xx.com/article/cohpsji.html