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)
設定自動產生敵人及自動判斷程式碼,並檢視是否有每兩秒出現一隻敵人

你還在幫別人打造舒適圈?

 師不順路,不好為人師,談何容易.... 人總是在為自己的做法找"理由",找一個漂亮的包裝,找一個可以說服人的方式,找一個立足點....然而,這個為自己所做的一切,往往是一個自私的隱性表現,因為你要達到的就是"滿足"自己。 但要如何滿足自己...