Android遊戲中的動畫製作

2021-06-16 23:24:21 字數 2191 閱讀 8248

遊戲中最常見的元素就是了,想讓乙個遊戲中的角色看起來更生動,單靠簡單的移動和旋轉是遠遠不夠的,我們應該為角色新增動畫,「動起來」的角色看起來既生動又貼近現實,具有更好的使用者體驗。那麼動畫在遊戲中是如何實現的呢?

我們拿當今紅的發紫的【捕魚達人】這個遊戲來說明。

如果我們有這樣一張,想讓這只鯊魚動起來是很簡單的一件事情,我們只需要將這張再每幀繪製的時候改變座標就可以了。

**片段如下:

…matrix.settranslate(x,y);

canvas.drawbitmap(fish.getimg(),matrix,paint);

x--;

…我們在乙個迴圈中,一直改變變換矩陣的座標,將x向左平移,這樣在每次繪製鯊魚的時候,看起來就可以游動了。

但是。這樣的效果是不是很傻?為什麼呢?一眼就能看出來,因為魚沒有動作嘛!看起來像是一條死魚在順流飄動而已。這樣的使用者體驗是糟糕的。那麼我們怎麼解決這個問題呢?很簡單,因為我們可以使用多張來完成這個。我們再繪製的過程中,一直變換鯊魚的,這樣就能使鯊魚看起來更生動了。

我們先來準備一組~

就不一一舉例了,當我們有了這樣一組後,我們就可以繪製出看起來更加生動的鯊魚了。

**上我們來這樣做。

…bitmap acts = new bitmap[4];

acts[0]= bitmapfactory.decoderesource(

gameactivity.getresources(),

r.drawable.shark01);

acts[1] = bitmapfactory.decoderesource(

gameactivity.getresources(),

r.drawable.shark02);

acts[2] = bitmapfactory.decoderesource(

gameactivity.getresources(),

r.drawable.shark03);

acts[3] = bitmapfactory.decoderesource(

gameactivity.getresources(),

r.drawable.shark04);

…有了這樣一組表示鯊魚動作的後,我們就可以在繪製的時候迴圈這個動作的陣列,來讓鯊魚「活起來了」。

有經驗的程式設計師一眼就能看出問題:這樣做不好吧?建立鯊魚的動作的**是寫死在程式上的,這樣不利於維護。什麼意思呢?如果後期我們發現鯊魚的動作不夠流暢,想新增一幀鯊魚的動作,這時候怎麼辦?我們修改**?加上下面這句話?

acts[4] = bitmapfactory.decoderesource(

gameactivity.getresources(),

r.drawable.shark05);

好吧,我們來通過配置檔案,定義一下鯊魚的動作有多少,還有一點,我們不要吧鯊魚的分開成不同的檔案,我們可以用一張來描述所有的鯊魚動作,在初始化鯊魚的時候,通過鯊魚動作的配置檔案來分割這張圖,達到上面的效果。

配置檔案我們採取xml檔案格式,android

有這完善的解析xml的工具,簡單方便。

xml配置檔案片段如下:

…010001.png

frame

, }offset

sourcecolorrect

, }sourcesize

010002.png

frame

, }offset

sourcecolorrect

, }sourcesize

…我們在配置檔案中規定了鯊魚的每一幀的左上角座標以及的寬度和高度。

, }

這樣就可以從鯊魚的中將它裁剪出來做成一幀來存放在動作陣列中。

類似這樣,我們就可以取到每一幀的動作了。

然後我們再迴圈這個動作陣列,就可以改變鯊魚的動作了。

那麼,每次更新的時候,我們只需要將鯊魚的動作上新增新的動作,再修改一下xml檔案,就可以在不修改源程式的情況下達到新增鯊魚動作的目的啦~這樣不是很好麼?

遊戲中的動畫系統

這樣的 很麻煩,也肯定不是乙個成熟的遊戲需要的。更簡單些,這樣 while true 這個playanimation 這樣寫 if frameindex animationframes.length 然後再說說詳細說說動畫的組成。動畫是由一楨一楨的影象組成。而每一楨的影象又是一塊一塊的小圖拼成。為什...

遊戲中Edit的製作

edit,也就是文字框了,是玩家可輸入的控制項,也是遊戲中ui中最難實現的乙個控制項 相比button,list,checkbox 原理 1 先定義一條資料結構,用於處理輸入字串,比如分行,游標位置等。2 把使用者輸入的內容寫到記憶體中。3 從記憶體中讀取資料,放到遊戲引擎中,讓引擎顯示到介面。詳細...

製作android開機動畫

開機時共分兩部分,開機logo和開機動畫 準備1 核心部分 第一階段靜態顯示,要求一張 png 格式 滿足機器要求解析度 單張不大於 100kb。靜態顯示時間 5 秒左右 2 android 部分 第二階段靜態顯示,要求一張 png 格式 滿足機器要求 解析度 單張不大於 100kb。靜態顯示時間 ...