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

正文內(nèi)容

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

2025-10-13 18:59 本頁面


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