Android 遊戲開發基礎

2021-08-26 04:14:07 字數 2060 閱讀 1384

一、首先我們應該知道android遊戲開發的一些基本框架。

例如下面乙個簡單的su***ceview類框架:

public class gamesu***ceview extends su***ceview implements su***ceholder.callback,runnable 

public void su***cechanged(su***ceholder holder,int format,int width,int height)

public void su***cecreated(su***ceholder holder )

public void su***cedestroyed(su***ceholder holder)

public void run()

catch(exception e)

synchronized(msu***ceholder)}}

private void draw()

}

然後在activity類中 :setcontentview(gamesu***ceview的物件)。

二、遊戲開發中常用到的基本類

android中通過graphics類來顯示2d圖形,graphics中包括了canvas(畫布)、paint(畫筆)、color(顏色)、bitmap()等常用類。

例如繪製字串用canvas類的drawtext方法來實現,drawrect用來繪製矩形,設定透明度可以用paint類的setalpha,同時 color.rgb方法可以直接獲得整形數值代表的顏色。此外在繪製時應該首先從資源檔案中裝載,然後才能繪製到螢幕上去。具體**如下:

bitmap mypic = null; mypic=((bitmapdrawable)getresources().getdrawable(r.drawable.pic)).getbitmap(); canvas canvas = new canvas(); canvas.drawbitmap(mypic,x,y,null);

三、關於自適應螢幕解析度的問題

每款手機解析度的不同注定是程式設計師開發遊戲必須考慮的問題,怎樣才能寫乙個程式而達到可以在不同解析度的機子上執行良好,這將是決定乙個遊戲好壞的重要因素之一。在遊戲資源res下有三個和儲存有關的資料夾:drawable-hdpi、drawable-mdpi、drawable-ldpi。 drawable-hdpi裡面存放高解析度的,如wvga (480x800),fwvga (480x854),drawable-mdpi裡面存放中等解析度的,如hvga (320x480),drawable-ldpi裡面存放低解析度的,如qvga (240x320),系統會自動根據機器的解析度來分別到這幾個資料夾裡面去找對應的。當然,除了準備好幾組不同解析度的以外,在**中座標和觸屏事件的座標都要靈活的處理,這樣才能實現乙個程式多機型執行的目標。

displaymetrics dm = new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(dm);

int screenwidth = dm.widthpixels;

int screenheight = dm.heightpixels;

通過以上**可以獲得當前機型的螢幕畫素,然過比列換算可以實現**中座標的靈活應用。

四、如何鎖定螢幕是橫屏還是豎屏

一款遊戲通常不會設計成橫屏豎屏都可玩,會固定成橫屏或豎屏。只需在androidmanifest.xml裡面配置一下就可以了,加入這一行android:screenorientation="landscape"。

例如(landscape是橫向,portrait是縱向)。

五、view與view之間的跳轉

handler myhandler = new handler()

if(msg.what == 2)}};

然後用:myhandler.sendemptymessage(1)來實現切換。

android遊戲開發

1 容器我們準備自定義viewgroup 叫做game2048layout 裡面的塊塊自定義view 叫做game2048item 接下來從簡單的開始 2 game2048item game2048item是個view,並且需要哪些屬性呢?首先得有個number,顯示數字嘛,然後繪製的時候根據num...

android 遊戲開發框架

activity類 必要屬性 各種su ceview 各種動畫執行緒 各種聲音 mediaplayer或者soundpool handler 根據收到的mssage切換su ceview或者更新控制項 entity類 必要的屬性 記錄位置,寬高等 dodraw cancas cancas 繪製自己 ...

Android遊戲開發之旅(十四) 遊戲開發實戰一

從今天開始android123將開始帶領大家進入android遊戲開發實戰篇,本次我們首個遊戲為2d的基於su ceview的類似橫版卷軸遊戲。第一天我們說下需要做哪些準備 一 遊戲地圖編輯器,在j2me時代我們可能都是用gif分割多幀或bmp上放置多個通過減少檔案頭來壓縮體積,但是在android...