2009年6月26日 星期五

期末專案-Virtual Joystick

這次的構想來自於網路上找到的一個網站
Camspace
你可以在這個網站下載 CamSpcae這個平台
然後在下載其他人寫好的視訊遊戲來玩,裡頭有不少有趣的小遊戲
不過這套軟體的SDK並不直接開放下載,需要寫信去索取才行

這次的期末專案簡而言之就是以Webcam來模擬 Keyborad Joystick等輸入裝置
來對遊戲發出控制指令

而在這邊我是以極速快感10:玩命山道這套賽車遊戲做為示範

Step 1:首先開啟Virtual Joystick 這個程式
Step 2:點擊Webcam->Preview 從Webcam擷取影像到BCB的Panel上
Step 3:保持背景之單純 點擊 BackGround 取得30張影像作平均值
Step 4:點擊Binary產生原有背景(黑色) 與 變動物件(白色)之二元圖
Step 5:點擊Keyborad Enabled 使訊號能夠送出




下方兩個Button分別是
Line Enabled <--> Line Disabled
單純的將觸發事件的位置標示出來
以及
Keyborad Enabled <-->Keyborad Disabled
這個按鈕來決定是否要將訊號送出

不過這裡我有一個地方很偷懶
就是每一個框框觸發後所送出的訊號我應該讓使用者自訂
但是這隻程式是寫死的
左上至右下分別是
NUMPAD1 NUMPAD2 NUMPAD3
NUMPAD4 NUMPAD8 NUMPAD6
所以如果要玩遊戲的話可以需要依照上面的訊號
去做遊戲中按鍵的配置

然而現在有一個大問題在於,只能使用在能夠"視窗化"的遊戲or程式

假設是開啟全螢幕的遊戲的話,
因為Virtual Joystick這隻程式並沒有被OS給Focus住
所以是不會送出任何訊號給遊戲or程式的

不過我後來有找到一個解決方法就是使用雙螢幕,
將Virtual Joystick 與遊戲分別放在兩個不同視窗,還是可以送訊號過去

------------------------------------------------
其實原先的設計是想要模擬賽車的方向盤
因此還去抓DirectX 7.0的SDK 還有一個叫TDx的Compoment來研究
不過後來因為天氣太熱 心情煩躁所以放棄XD
模擬Keyborad訊號跟模擬jotstick的難易度差太多了=3=
後者還要去處理Driver的部分...

CAM Game Show 2009 照片 (26 June 2009):


黃國維上台發表作品: Virtual Joystick!


黃國維講述創作靈感來源!


用虛擬搖桿玩賽車之執行畫面!


黃國維試用虛擬搖桿玩賽車!


張智銓用虛擬搖桿玩賽車!


用虛擬搖桿玩賽車之執行畫面!



 

沒有留言: