2010年5月2日 星期日

期中專題-貓抓老鼠






製作學生:495511466 郭宸雨 495511210 李俞萱

專題動機與介紹:
一開始我們想到是釣魚遊戲,利用亂數產生的魚去撈,但是我們在設計的時候發現魚只能在固定位置亂數產生,這樣跟一般的撈魚遊戲有點不合邏輯,所以才改成亂 數時間產生老鼠,然後去抓老鼠,只要有抓到老鼠就可以加分的遊戲。

使用的技術:
opencv的視訊處理功能,主要是用顏色偵測(color detection)以及虛擬滑鼠(virtual mouse)去判斷指標位置,進而去抓到老鼠

實作介紹:
利用亂數產生的圖片,當圖片被亂數產生時,就有個布林值去判斷圖片被產生了,布林值的主要目的是要當滑鼠跟圖片發生collision時,就表示抓到了老 鼠,就可以計算分數,而且可以產生抓到老鼠的音效

遭遇的困難:
圖片消失太快,導致抓不到老鼠。
一開始在跑程式的時候,是 設定老鼠出現消失,就是一個布林值而已,所以當老鼠出現後,下frame就會馬上消失,會讓看到老鼠,正要去抓的時候,老鼠就不見了,所以我們是用一個陣 列去存老鼠的狀態,當老鼠出現後,讓他增加停留的時間,延長老鼠停留的時間,這樣一來不用去改waitkey的值,也可以讓老鼠出現後比較慢的消失。

而另一個問題是貼圖的問題,一開始把logo貼上去的時候,發現有灰色的框框,就是他不能有空白底,在這邊一開始以為是圖片格式的關係,換了好多個格式後發現無法解決,但後面仔細看了一下貼上logo的程式碼後發現,原來是因為兩層的for迴圈,把圖片每個pixel都貼上去了,於是解決的方式就是多一個判斷式:if(ptr1[3*(x)]!=100 && ptr1[3*(x)+1]!=100 &&ptr1[3*(x)+1]!=100)把灰色以外的pixel複製進視訊裡面,這樣就解決啦。
遊戲介紹:

一開始的畫面,要先偵測虛擬滑鼠的顏色







實際影片


心得與展望:
這是個蠻有趣的專題,比起其他專業科目的專題,這個專題算是簡單許多,不需要用到複雜的資料結構、資料庫、或是其他難度的程式碼,但是這個專題是要結合前幾次上課的技術,在加上專題的創意,才可以完成的,所以我覺得這次的專題很有趣。在專題demo時也參觀過其他組別的遊戲,雖然都是小遊戲,不過有很多創意,這也是這次專題所要學習的。而期末專題,也希望從這個專題去做延伸...能夠寫出更完美的專題。

沒有留言:

張貼留言