2010年4月25日 星期日

【期中專題】電流急急棒─OpenCV




組員
:李岱融、翁群弼

動機:原本想要做像是太鼓達人之類的遊戲,但實作上似乎沒有那麼直覺,由第五個作業延伸之下,想到了「電流急急棒」!

製作流程與方法:使用第五個作業開始修改,目的是要讓感應到的顏色當作滑鼠,來控制視窗中的圖片來進行遊戲。

遇到的困難&解決方法:

1.感應的顏色究竟要用什麼?

起初我們使用老師的方法,在感應區等待一定的時間讓程式去計算所得到的顏色的RBG,再由此顏色來當滑鼠,但後來發現此方法根本無法知道最後程式感應到的顏色的確切RBG是多少,我們不知道要怎樣去控制它。(例如用紅色去感應,得到的不一定是255、0、0,有可能是150、30、20)

最後的解決辦法是,乾脆不要用感應的,直接限定程式「只能」接受R值在150上下,B和G都在30以下的紅色。(150定的方法很簡單,我直接把要感應的物品照張像,然後用小畫家的顏色分析看出此紅色的RBG)

這樣就解決了跟環境相衝突的問題,而且也能精準的控制住我要的顏色。

2.到底迷宮和主角要用嵌入的還是直接在視窗上畫?

一開始是在視窗上用OpenCV的函數直接畫,但後來發現,這樣做我根本找不到判定何時主角撞到牆壁,於是就用嵌入的方法來做。

更準確的說法,應該是因為迷宮圖形過於複雜,要用畫的有一定難度,而且要用座標判斷的話,也有點麻煩,所以直接用顏色交集來判斷,會省掉很多麻煩。

3.如何判斷「撞壁了」?

由於兩張圖都是用嵌入的,我可以自己控制顏色。所以我使用最單純的三原色,紅─畫迷宮;綠─畫主角;藍色─最後的終點區域。

case1→綠色和紅色交集,就是輸,跳出迴圈,產生爆炸聲、嘲笑聲和Game Over圖片。

case2→綠色和藍色交集,就是贏,跳出迴圈,產生歡呼聲和You Win圖片。

case3→綠色和白色交集,繼續執行。由於迷宮背景是白色,我就將255、255、255的色不顯示出來,所以看不到白色。

麻煩的點:

1.要怎樣把主角(綠色圓圈)的座標算好,並且貼齊。

2.顏色交集的函數。

Demo影片:

勝利模式示範─

失敗模式示範─



沒有留言:

張貼留言