Labels

2005 (136) 2004 (99) 2006 (84) 2007 (41) 2008 (41) 簡單生活 (24) 2012 (14) 網頁設計 (14) 電腦技巧 (13) 2009 (12) 2010 (10) PHP (10) 台灣晃一晃 (9) Learn Note (7) 地球這麼大 (6) 2011 (5) Mysql (3) Smarty (3) Vista (3) 手機待吐 (2) 2014 (1) 2021 (1) Composer (1) Laravel (1) MAC (1) MAMP (1) 新新人類新科技 (1)

20121125

shiva3D 塔防大戰 part6

設定遊戲中的HUD
新增HUD並與所用到之貼圖匯入且一同加入資源區
1.設定黃忠血條

 2.設定計分板
3.設定弓箭顯示畫面
4.新增過關殺敵數

5.新增鍵盤事件(鍵盤按下ESC鍵即跳離)

6.將HUD新增到場景界面
加入關卡設定
1.加入過關判斷,新增NextLevel函數,並以nL為參數。撰寫場景動態產生Hero及對應位置的程式。再把Hero模型加入GameEditor模型區



2.因已由第一步驟來動態新增Hero,故原本的Game_onEnter的場景設定及英雄須拿掉,並且撰寫關卡判斷設定


3.新增nKilled(0)變數來儲存殺敵數
4.新增處理Score、Blood、Arrow的函數
5.撰寫關卡判斷及殺敵判斷

6.離開遊戲時,要把HUD拿掉

shiva3D 塔防大戰 part5

設定場景及HUD
1.建立其他關卡場景(Start,Lv2,Lv3,GameOver)
2.建立HUD(StartMenu,GameOverMenu)
3.MainAI新增事件(onStart,onQuit,onGameOver)
4.新增遊戲狀態
5.設定元件及行為

6.新增變數紀錄目前關卡 nLevel : 1
撰寫切換關卡事件
7.撰寫遊戲離開事件

8.撰寫遊戲開始事件
9.撰寫遊戲結束事件
10.將HUD加入遊戲編輯器的資源區,並且將原本onInit()的內容移至Start狀態機的onEnter內,再接著撰寫加入hud的程式碼

11.此部分若直接執行會造成錯誤(1.因為Start場景裡沒有黃中物件 2.onMouseButtonDown會找不到物件來作移動而出錯),故:
11-1.請先移除Start_onEnter取得黃忠物件的程式碼
11-2.設定Enemy_onEnter的程式碼
11-3.onMouseButtonDown加入判斷式,只有在遊戲中才會取得黃忠物件並移動
14.設定完成後請執行,並點按Start及Exit測試是否設定正確

20121118

shiva3D 塔防大戰 part4

設定敵人移動狀態

1.匯入貼圖FatFireMove001、FatFireMove002、FatFireMove003
2.將三張貼圖移至GameEditor資源區
3.設定敵人AI(EnemyAI)
4.並加入敵人移動狀態機(Move)
5.撰寫呼叫敵人移動的動畫程式
6.將TextureAnimationAI及EnemyAI加入Enemy模型

7.加入移動定位變數,並在動畫一開始設定變數值域

8.動畫執行時加入移動到定點程式
敵人發動攻擊
1.載入貼圖(BombFly及FatFireBomb001-003),並將肥肥圖放置到GameEditor資源區
2.製作Bomb模型及材質(Bomb_m)

3.新增攻擊狀態Attack
4.切換跑步至攻擊狀態(Move_onLoop()),並新增丟炸彈狀態ThrowBomb

5.蓄勢待發(Attack_onLoop())


shiva3D 塔防大戰 part3

銷毀敵人
1.將欲銷毀的物件(Arrow、Enemy)套入感測器



2.於ArrowAI內新增碰撞事件並撰寫銷毀程式

3.於MainAI新增onHitEnemy處理敵人數量刪減的動作

4.於ArrowAI之onSensorCollisionBegin()加入呼叫onHitEnemy事件處理

新增動畫AI-TextureAnimationAI
1.加入變數

2.新增取得貼圖名稱函數 GetTextureName
3.新增動畫處理程式處理開始動畫部分
4.新增動畫處理程式處理結束動畫部分
5.新增動畫處理程式處理每個影格執行轉變部分

20121111

shiva3D 塔防大戰 part2

設定主角移動
設定黃忠標籤
設定黃忠變數
在一開始(onInit)即取得黃忠物件

滑鼠按下後呼叫轉換函數,並且將黃忠移動到對應的y軸

設定弓箭
將弓箭加入GameEditor使其可以動態呼叫
呼叫弓箭
建立弓箭移動AI(ArrowAI)
將弓箭移動AI套用至弓箭模型

設定肥肥
將肥肥模型(Enemy)放到GameEditor的模型作為動態物件
在MainAI加入新增敵人的函數CreateEnemy()
撰寫產生敵人的程式碼

設定敵人延遲時間變數(nDelay,預設為0)及敵人目前已在場景內數量(nCount,預設0)
設定自動產生敵人及自動判斷程式碼,並檢視是否有每兩秒出現一隻敵人