2016年6月30日 星期四

01361162 - 綿羊過馬路

遊戲展示影片


這次專案我選的遊戲是綿羊過馬路,會選擇這款遊戲是因為我自己很愛玩這類型的遊戲,想知道把控制方式從指頭換成身體動作的效果會是如何,本來預想是簡單的小遊戲改用互動視訊來控制應該也很容易上手,沒想到過關的難易度直接從一顆星跳到五顆星。



遊戲玩法:
上圖左邊所展示的虛擬按鍵與差異偵測的介面,右邊是遊戲畫面。遊戲本來是以鍵盤的上下左右鍵來控制綿羊的移動方向,而在此專案則玩家可以透過觸碰虛擬按鍵介面裡的上下左右箭號區塊來控制綿羊分別往前後左右移動,成功把五隻綿羊移送到對面的木柵裡就可以進級下一個關卡;移送途中若被車子撞到就會失敗,總共有三次機會;進級後機會將會重置。


專案心得:
因為老師再三的強調要把上課投影片裡的實作全部做過一遍才開始做專案,我就乖乖地跟著做完,果然實作對於做專案非常有幫助。首先是處理虛擬按鍵與差異偵測的部分,只要照著老師寫的程式碼進行部分的修改,很快就能做出所需要的玩家介面,但因為透過視訊鏡頭會使玩家的動作與螢幕所顯示的動作左右顛倒;雖然老師的程式碼有教鏡射的處理,但我剛開始沒有搞懂處理陣列的先後順序,一直Try and Error才得到想要的鏡射後再做偵測的效果。可是鏡射並不是這次專案裡面讓我卡關最久的,讓我卡了整整三天的是我自己的不小心!在處理差異偵測時,需要先擷取背景畫面,放置該畫面的TImage的Property名字是設成imBackground,而起動差異偵測程序的功能列的Property名字則設成miBackground;又剛好在建立imBackground時不小心雙擊了它,導致在程式碼產生了一個imBackgroundClick程序,而超級不小心的我就把本來應該放在miBackgroundClick程序裡的程式碼放在imBackgroundClick裡面,程式碼又沒有錯誤,最後變成編譯成功但點擊miBackgroundClick卻什麼都沒有做!而我回頭檢查程式碼時又沒有去檢查程序名字,結果這樣一個不小心的錯誤讓我Debug了三天,最後我會發現是因為突然靈機一動去雙擊miBackground功能列,才看到程序裡頭根本沒有程式碼。我學到教訓了!以後建立Property不會隨便雙擊,Debug時也會從程序名字開始小心檢查!

專案檔案
https://drive.google.com/open?id=0B5QGO4BEGv-HVWlQdWxkVlZLWmM

沒有留言: