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)

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)