發表文章

shiva3D 坦克大戰 part3

圖片
坦克開火 1.設定bFire變數(布林,預設false) 2.新增onFilre事件 3.在onFire事件加入判斷開火狀態 4.在onKeyboardKeyDown(kKeyCode)裡加入開火使用按鍵判斷 5.在onKeyboardKeyUp(kKeyCode)裡加入開火按鍵放開判斷 6.匯入子彈包裝檔 (Bullet.ste) 7.設定場景砲管位置的標籤(Tank_fire_position_tag) 8.將子彈包裝檔設為動態物件,須先將子彈模組放入GameEditor內的模型 9.撰寫子彈的產生方式 10執行時按下空白鍵,查看是否子彈已上膛 BulletAI (子彈發射AI) 1.新增BulletAI作為子彈發射功能 2.於BulletAI內加入onEnterFrame事件 3.撰寫子彈發射程式碼 3.套用BulletAI至Bullet模組內 4.執行時發現子彈發射的角度有問題 5.調整子彈發射角度,並加入按鍵連續發射程式碼 動態物件(子彈)消除 1.設定牆壁感應器 2.幫子彈添加感應器 3.在BulletAI加入是見碰撞處理器onSensorCollisionBegin() 4.撰寫碰撞感應消除程式碼 5.執行時若子彈發射太快也會被消除 6.調整感應代碼 坦克履帶動畫 1.建立變數nPedrail,預設值為0 2.對坦克的履帶(Tank_pedrail)加入標籤(Tank_pedrail_tag) 2.於前進onForward()事件內加入履帶動畫 3.於後退onBack()事件內加入履帶動畫 計算子彈發射數量 1.新增HUD (Tank_HUD) 2.新增元件BulletNum(Z順序:128,框及背景為0,反鋸齒) 3.onInit()撰寫程式碼,將HUD加入畫面 4.加入nBulletNum變數,預設0 5.撰寫計算子彈發射數量的程式碼 6.執行畫面確認發射數量與按鍵數量相符 ~坦克大戰遊戲課程結束~

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)

20120705 義大利Italy(水都:威尼斯Venezia)

圖片
早上與米蘭房東道別後,坐了預定的義大利火車(對號列車)到威尼斯。約二小時半的車程,義大利快車一定會查票,如果不想買貴,就提前看準時機買票吧!這次的車程一樣只要9歐,非常物超所值。 不會訂的看倌可參考(阿批教您訂義鐵),不懂可再請教阿批。   ------------------------------------------------------------------------------------------------------------------------ ---------------------------------  一樣的規矩(!?)先列一下預定行程,行程列完阿批再剪短囉嗦一下威尼斯的歷史 ------------------------------------------------------------------------------------------------------------------------ --------------------------------- 米蘭至威尼斯 交通工具:義鐵( Milano Centrale 08:05至 Venezia S. Lucia 10:40( 36歐/4人 ) 威尼斯住宿: (Antico Capon Dorsoduro 3004/B, Venice, Veneto, Italy ) 30歐/pp [義大利]威尼斯 住宿:原本有多訂,但有夜車,坐夜車較划算,所以退訂,多補2.5歐手續費,所以白送他12+2.5歐(哭哭,對不起大家Orz) 威尼斯到維也納交通:到VeneziaMestre乘坐StudentAngency(一人12900FT約43歐)時間PM9:00,到維也納(Wien, Lassallestr./Praterstern)為凌晨4:40 行程 聖馬可區S.Zaccaria Danieli站 (1)聖扎卡利亞教堂   T  10:00-12:00 E Free (舊教堂 1 歐) (2)聖馬可廣場  通票12歐 總督宮   T  9:00-19:00 柯雷博物館 T  9:00-19:00 ...