|
Snake這個(gè)項(xiàng)目把主界面剖成界面UI和游戲邏輯兩層,最基礎(chǔ)的界面UI部分用父類TileView來(lái)表示,子類SnakeView是在TileView的UI基礎(chǔ)上,加入相應(yīng)的游戲控制邏輯,從而實(shí)現(xiàn)了兩者的分離,這對(duì)于游戲的修改非常有用。
UI實(shí)現(xiàn)部分
首先來(lái)看界面UI部分,基本思想大家都非常清楚:把整個(gè)屏幕看做一個(gè)二維數(shù)組,每一個(gè)元素可以視為一個(gè)方塊,因此每個(gè)方格在游戲進(jìn)行過(guò)程中可以處于不同的狀態(tài),比如空閑,墻,蘋果,貪食蛇(蛇身或蛇頭)。我們?cè)诓僮?a href=/yuedu/youxi/ target=_blank class=infotextkey>游戲的過(guò)程,其實(shí)就是不斷修改相應(yīng)方格的狀態(tài),然后再讓整個(gè)View去重繪制自身(當(dāng)然,還需要加入一些游戲當(dāng)前所處狀態(tài)(失敗或成功)的判定機(jī)制)。TileView的數(shù)據(jù)成員如下:
//方格的大小
protected static int mTileSize;
//方格的行數(shù)和列數(shù)
protected static int mXTileCount;
protected static int mYTileCount;
//xy坐標(biāo)系的偏移量
private static int mXOffset;
private static int mYOffset;
//存儲(chǔ)三種方格的圖標(biāo)文件
private Bitmap[] mTileArray;
//二維方格地圖
private int[][] mTileGrid;
it知識(shí)庫(kù):Android實(shí)例剖析筆記(七),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。