2010年6月13日 星期日

期末專題 - 瑪莉豆

介紹:
是一個利用捲軸移動的遊戲,畫面會一直向右移動,途中會有障礙物,遊戲者必須要在鏡頭前面跳躍,讓小豆子在遊戲裡面可以成功躍起閃躲障礙物,以抵達終點。

動機:
由於其中專案不是屬於遊戲型的程式,所以在評分時乏人問津。所以在這次期末專案我們決定換到遊戲型的方式來做。在一切的開始時對於要做什麼毫無想法,然而之前在電腦教室看到有人在玩"瑪莉貓"這款韓國製的遊戲,所以就想到了能不能把瑪莉歐這遊戲改成用視訊鏡頭來做,於是我們就開始了我們的計畫。

過程:
後來發現想法其實跟加分題差不多...,只是我並沒有想到把它改成鍵盤訊息,所以動作的執行是我們自己寫,遊戲背景也是我們自己畫,所以真的是遇到相當多的問題。例如最一開始是如何讓畫面用捲軸式的方式移動,我們googel搜尋也找不到,花了一整天的時間,最後上PTT的板上發問,才有人回答我們的問題

smallImg=cvCreateImage(cvSize(xwindows,ywindows),IPL_DEPTH_8U,3);
cvResetImageROI(bigImg);
cvSetImageROI(bigImg,cvRect(x,y,xwindows,ywindows));

這是我們找到的函數,xwindows還有ywindows為小視窗的視窗大小,設定x,y為0然後設定x++。我們遇到的最大問題點是...一開始我們cvSetImageROI是這樣寫的

cvSetImageROI(bigImg,cvRect(x,y,x+xwindows,ywindows));

認為前面xy為視窗左上點後面xy視窗為右下點,所以理所當然的後面的x座標要鍵入x+xwindows,然而卻錯了,因為這函數應該是前面xy為定位視窗的左上角用,右邊的xy為視窗大小。最重要的是網路上沒人提到這點...所以我們真的是...測試了很久才發現這錯誤...大概花了一下午。

再來跳躍如何讓角色跳起落下有感覺,因為如果沒有讓他有連續動作的感覺,跳起來會像是突然浮空然後瞬間回到地板,而不是跳起來。這個也花了好幾個小時。

以上只是舉其中兩個問題,因為遇到很多困難,沒有時間做,最後就捨棄了瑪莉歐變成了...類似一種障礙賽的東西...

如果早點知道有鍵盤訊息這種東西的話...應該就做得出來了。


影片:

沒有留言:

張貼留言