2011年6月24日 星期五

期末專案: 來玩遊戲吧

專案構想: 我最初的想法是希望使用Interface mode 來遊戲,之後延伸出藉由一個Interface mode可以玩多個不同的遊戲,而其遊戲種類可互不相同。而我所想到辦法為設計一個遊戲選單,藉由使用者選擇某種遊戲後,而改變原本的介面,變成符合該遊戲的介面,這樣就成功的在一個Interface中可玩多種遊戲。







此圖為遊戲選單
在這我放入了三種遊戲的圖示,藉由碰觸可直接開啟遊戲並且在視訊擷取視窗中顯示符合該遊戲操作模式的觸發圖示,如下圖:








而在這階段則必須考慮到所有圖示的觸發事件,哪些應該執行哪些又該被隱藏,例如我選擇了小朋友下樓梯的遊戲,那麼在視窗中除了該遊戲的操作圖示外,其他圖示應該都被隱藏起來,並且就算觸碰到也不該有任何動作執行。在這邊我所有的動作以Bool的方式與觸發條件進行判斷,才解決了這部分的問題。









在遊戲進行中我藉由碰觸操作圖示來執行keybd_event和mouse_event的動作,上圖的小朋友下樓梯來說,我碰觸左右兩邊的圖示來進行遊戲人物的左右移動,而keybd_event動作為"按"和"放",但是這部分我在嘗試進行遊戲後,發現若是在執行"按"後馬上執行"放"則遊戲人物無法進行移動,若是在"按"動作前放入Sleep指令或於"放"動作後放入Sleep指令,則人物移動將變緩慢,如圖:


而之後找到的較有效為在"按"和"放"兩動作間插入數個Sleep,但每個Sleep時間必須極短暫,雖然並未完全的解決問題,但相較於之前的已經更為流暢。



在寫完程式之後,翻覆的進行測試發現在遊戲過程中,延遲時間真的占了相當重要的一個地位。原本打算將其中一個遊戲做成一個用腳的跳舞機,但是在做過程中發現其中有兩點不好達成,1個是身高和影子,但是這部分只需在地板鋪上深色紙和將WebCam放於頭頂上方,另一個則是WebCam放置的位置,正如前面所說應該放於上方,但是很遺憾並沒地方讓我將WebCam放置在高處。



影片:




















沒有留言: