20121125

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

shiva3D 塔防大戰 part1

場景設定
建立專案

建立遊戲

匯入關卡背景貼圖



於AmbienceEditor設定背景貼圖

建立場景
調整攝影機(X:0,Y:0,Z:65)

主角設定
匯入黃忠貼圖(Hero.png)

建立模型→形體→平面體(XY平面,+Z軸為法向量),Hero


建立Hero模型材質(Hero_m,效果貼圖為Hero.png、建立動態燈光,自發光7f7f7f)



將黃忠移置場景內,並調整到原點

畫面設定
畫面尺寸調整為iPad橫向1024*768

調整攝影機位置(Z:6.5)

調整黃忠位置,(X:-2.8)

撰寫場景AI
建立主程式(MainAI)
將MainAI加入GameEditor主程式
新增onInit並撰寫設定當前場景程式

建立敵人(Enemy)與弓箭(Arrow)模型
撰寫操作程式
轉換2D的座標至3D的座標

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

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