freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

智能移動終端應用開發(fā)設計報告基于android系統(tǒng)的貪吃蛇游戲開發(fā)畢業(yè)論文-文庫吧

2024-10-27 18:59 本頁面


【正文】 游戲控制模塊 ( 1)游戲開始控制: 我們的程序是使用上鍵開始游戲,啟動游戲后會有一個初始菜單界面,我們點擊“開始游戲”,彈出一句話“請按上鍵開始游戲”。游戲開始后蛇向下移動,然后由控制上下左右鍵來控制蛇的移動。 在程序中我們重新建了一個 activity來控制游戲的開始,使游戲的開始界面更美觀。 ( 2)游戲暫??刂疲? 5 我們是使用 center 鍵來控制游戲的暫 停的,這是一項人性化的設計,當玩家在游戲過程中突遇緊急情況時可以按 center 鍵暫停游戲,等玩家空閑后按center 鍵可以繼續(xù)游戲。 ( 3)游戲退出控制: 在游戲的退出上我們的程序使用了多種方式來應對不同的情況,當玩家正在游戲中時,如想退出可以按“ 1”鍵,程序會自動跳轉(zhuǎn)到初始菜單界面,在初始菜單界面點擊“退出游戲”即可退出游戲。如果玩家在游戲中由于碰到墻或者咬到自己或者碰到障礙物而導致游戲結(jié)束的,游戲或自動彈出一個界面,里面有提示是繼續(xù)游戲還是退出游戲,當點擊“取消”時,游戲就會自動跳轉(zhuǎn)到初始菜單,再點擊“ 退出游戲”即可。 4 設計與實現(xiàn) 具體實現(xiàn)過程分為以下 3 步:項目框架、游戲類圖設計、界面設計。 (1) 項目框架 :新建一個 Eclipse 工程并命名為 Snake,工程如下圖所示: 圖 1 Snake工程 工程中包括 4 個 Activity,分別為 Snake(主界面)、 Game(游戲界面)、 Help(游戲說明界面)、 AuthorView(作者信息界面),通過不同 Activity 之間的轉(zhuǎn)換6 實現(xiàn)不同界面之間的切換。游戲主界面如下圖所示: 圖 2 游戲主界面 ( 2) 游戲類圖設計 Game( Activity)繼承了 SnakeView 類, SnakeView 類繼承了 TileView 類。TileView 類繼承了 View。 TiltView 的基類是 View,包含了貪吃蛇游戲畫面的各個設定參數(shù),主要負責繪制游戲畫面。 TileView 類定義如下: public class TileView extends View { private static final String tag = yao。 protected static int mTileSize = 20。//方格的邊長 protected static int mXTileCount。//X軸上方格的個數(shù) protected static int mYTileCount。//Y軸上方格的個數(shù) private static int mXOffset。//繪圖時 X軸上的起始坐標 private static int mYOffset。//繪圖時 Y軸上的起始坐標 private Bitmap[] mTileArray。//位圖數(shù)組 private int[][] mTileGrid。//映射整個游戲畫面的數(shù)組 private final Paint mPaint = new Paint()。//畫筆 public TileView(Context context, AttributeSet attrs) { super(context, attrs)。 (tag, TileView Constructor)。 (tag, mTileSize= + mTileSize)。 } 7 //重置位圖數(shù)組的長度 public void resetTiles(int tilecount) { mTileArray = new Bitmap[tilecount]。 } @Override //適應各種分辨率的屏幕,當改變屏幕大小尺寸時,同時修改 tile的相關(guān)計數(shù)指標 protected void onSizeChanged(int w, int h, int oldw, int oldh) { (tag, onSizeChanged, + w= + w + h= + h + oldw= + oldw + oldh= + oldh)。 mXTileCount = (int) (w / mTileSize)。 mYTileCount = (int) (h / mTileSize)。 (tag, mXTileCount= + mXTileCount)。 (tag, mYTileCount= + mYTileCount)。 mXOffset = ((w (mTileSize * mXTileCount)) / 2)。 mYOffset = ((h (mTileSize * mYTileCount)) / 2)。 (tag, mXOffset= + mXOffset)。 (tag, mYOffset= + mYOffset)。 mTileGrid = new int[mXTileCount][mYTileCount]。 clearTiles()。 } //這里做了一個 Drawable 到 bitmap 的轉(zhuǎn)換 public void loadTile(int key, Drawable tile) { Bitmap bitmap = (mTileSize, mTileSize, )。 Canvas canvas = new Canvas(bitmap)。 (0, 0, mTileSize, mTileSize)。 (canvas)。 mTileArray[key] = bitmap。 } //清空圖形顯示 public void clearTiles() { (tag, )。 for (int x = 0。 x mXTileCount。 x++) { for (int y = 0。 y mYTileCount。 y++) { setTile(0, x, y)。 } } } //在相應的坐標位置繪制相應的磚塊 public void setTile(int tileindex, int x, int y) { mTileGrid[x][y] = tileindex。 } // onDraw 8 @Override //將直接操作的畫布繪制到手機界面上 public void onDraw(Canvas canvas) { (tag, onDraw)。 (canvas)。 Bitmap bmp。 float left。 float top。 for (int x = 0。 x mXTileCount。 x++) { for (int y = 0。 y mYTileCount。 y++) { if (mTileGrid[x][y] 0) { bmp = mTileArray[mTileGrid[x][y]]。 left = x * mTileSize + mXOffset。 top = y * mTileSize + mYOffset。 (bmp, left, top, mPaint)。 } } } } } SnakeView類定義了游戲運行時的畫面改變及蛇體和果子的更新方法。 首先用 Handler機制實現(xiàn)定時刷新,代碼如下: class RefreshHandler extends Handler { //獲取消息并處理 @Override public void handleMessage(Message msg) { ()。 ()。//刷新 view為基類的界面 (tag, handleMessage|Th
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1