Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android示例程序Snake貪食蛇代碼分析(三)

Android示例程序Snake貪食蛇代碼分析(三)

編輯:高級開發

 今天我們分析下最復雜的SnakeView的設計,它是派生於TileView方磚類,TileVIEw構建是基於android直接的顯示類VIEw,如果不明白的可以查看android示例程序Snake貪食蛇代碼分析(二)一文有關TileVIEw類的實現, 首先我們看到整個游戲分 READY、PAUSE 、RUNNING 、LOSE四種mMode狀態模式,分別對應准備、暫停、運行中、結束(死亡),畢竟貪食蛇沒有勝利這個結果。

整個Snake的運行分4個方向,NORTH、SOUTH 、EAST、WEST分別對應了北、南、東、西四個方向,其中變量mDirection對應當前的方向,而mNextDirection對應下個運行時的位置。這裡星星分3種,使用的是一個Drawable圖片,分RED_STAR、YELLOW_STAR和GREEN_STAR三種顏色,游戲的星星出現位置由Random隨機數生成器來決定,這裡Random一般和Timer系統時鐘來隨機生成更真實一些,通過一個Handler對象來控制畫面的更新,使用了this.update();和this.invalidate();這兩個本地方法,Update和invaildate均為android.view.VIEw類的本地方法。這裡資源的使用通過Resources r = this.getContext().getResources();獲取了r對象的實例,通過r.getDrawable(R.drawable.redstar)獲取資源名為redstar的資源,返回的是一個Drawable對象。

對於按鍵信息,直接重寫VIEw類的onKeyDown方法,這裡KeyEvent傳遞的是按鍵的映射,比如KEYCODE_DPAD_UP向上,KeyEvent.KEYCODE_DPAD_DOWN向下等等,詳細的查看SDK中的onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent msg) {

if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {}

}

整個游戲的控制流程就是上面這些,對於游戲的邏輯而言比較簡單,這個貪食蛇並沒有包含3D設計和類似Nokia的能量走廊、6邊形軌跡,有空了我們一起來完善一個3D的貪食蛇游戲。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved