20121028

shiva3D 坦克大戰 part2

鍵盤按鍵偵測與設定
1.新增鍵盤按下及放開事件
onKeyboardKeyDown(kKeyCode)
onKeyboardKeyUp(kKeyCode)
2.分別印出鍵盤按下及放開時的訊息
log.message("down")
log.message("up")
3.觀察按鍵事件是否可以正常偵測並印出相對應訊息

4.判斷輸入及放開的按鍵是否為WSAD(上下左右)
5.加入前進後退左右轉的功能

獨立處理坦克的動作

1.新增前後左右的變數來處理鍵盤按下的狀態

2.新增前後左右的程式功能來處理動作
3.將動作程式碼貼至相對應的程式

4.將變數狀態做改變


5.呼叫相對應程式

6.重覆呼叫自己

7.相對應程式加入判斷變數狀態

shiva3D 坦克大戰 part1

場景設定
1.新增專案 Tank_proj

2.於Game Editor介面建立遊戲 Tank_game


3.於Data Explorer 匯入包裝檔 Scene.ste

4.打開匯入的場景Scene並加入遊戲參照(GameEditor內的場景)

5.匯入坦克Tank.ste的包裝檔




6.將DataExplorer切換到Models資料夾可以看到Tank的物件,拖曳至場景內

7.調整視角,使其可以看到坦克的視野(第三人稱)

8.新增攝影機 TankCamera

9.將DefaultCamera調整到另一側(可看到Tank及TankCamera為主)

10.將TankCamera移至Tank內成為子物件(拖曳時按著Ctrl)

11.移動場景內的Tank並檢查是否TankCamera會跟著移動



設定遊戲AI並設定場景和攝影機
1.新增資源→AI模組:MainAI
2.將MainAI加入主程是使用者AI模組
3.在AIModelEditor的MainAI之Handlers加入onInit()

4.撰寫程示,設定場景,並做儲存編譯
--遊戲.設定目前使用者場景
 application.setCurrentUserScene ( "Scene" )

5.設定TankCamera的標籤以利接下來的程式取得物件用
6.設定攝影機,並做儲存編譯
    --遊戲.取得當前使用者場景已被標籤的物件(攝影機物件的標籤)
    local cam = application.getCurrentUserSceneTaggedObject ( "TankCamera_tag" )
   
    --遊戲.設定當前使用者場景要啟用的攝影機(物件)
    application.setCurrentUserActiveCamera(cam)

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

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