2013年1月18日 星期五

99160841 期末 引導迷途的羔羊


99160841
廖上輝
互動視訊遊戲製作

主題:
引導迷途的羔羊(小貓)

目的:
思考要有所互動的時候,想到要手指去當滑鼠,於是有了這個作品的雛形
因為貓咪喜歡追著會動的小東西跑,所以用引導小貓的方式去呈現

簡介:



如畫面中紅色圈圈所示,以手指,或是其他特殊顏色的物體,去引導黃色的小貓移動,小貓會逐漸接近該導引物,引導到畫面之外或是畫面上的某個點就算是過關了。

左下角黑框所包圍的圖片為小貓的四個方向和踏出左右腳與站立圖,這樣比較有真的在走路的樣子。





預計使用的程式碼概念:
1.      判斷小貓的方向與步伐:
catPicture[direct][step][positionX][positionY]
其中direct是由物體座標和小貓座標去作相減direct = {0,1,2,3} (下左上右)
If(objectX-positionX >= 0)表示物體在小貓的右邊,則小貓面向右,direct = 3
step則是由iFrameCounter來判斷,iFrameCounter%4的結果={0,1,2,3}
這表示小貓的步伐剛好是{站立,左腳,站立,右腳}
2.      判斷小貓與物體的距離:
距離公式(objectX-positionX)2+(objectY-positionY)2 = 兩者距離2
以此概念可以控制小貓接近的速度加快或減慢
3.      判斷物體的位置中心點在哪:
在畫面全部二值化的情況下,將整個畫面的白色點座標全部累加起來,再除以白色點的數量,就會得到畫面中所有白色點的中心點座標。
當然這種方法也不是萬無一失,有時候還是會有一些雜訊誤差,所以可以先搭配Block過的畫面(雜訊點比較少)再處理


卡關的狀況紀錄:
首先是RGB轉YUV的狀況,嘗試過RGB轉YUV之後再存進去,也試過RGB直接放進去,但是小貓圖片依然出不來,會呈現亂碼的狀況。不知道是哪個顏色的紀錄表格出了錯誤,從頭更改也是一樣的窘境。
一旦圖片出不來,那麼後續程式寫起來就無法測試,所以程式本體基本上是沒有完成的,只能跟大家討論我想做的東西的理論概念。



心得與感想:
        其實會用到的概念和程式碼大部分都是從基礎打上來的,就看我們怎麼去組合應用,而XE2這套軟體功能相當強大,最大的不足之處就是沒有中文化和學生使用版,在家想使用還得特地去申請一堆信箱才能用個幾天。
        關於這個小遊戲的概念,原本我是打算畫面中放一隻小貓讓牠隨固定方向移動,碰到畫面中的障礙物會反彈,而離開畫面範圍小貓就迷失了。畫面中的障礙物不多,必須靠玩家伸手去擋住小貓讓牠不會跑出畫面外。但是類似的遊戲已經在另一門科目做好了,所以改成以前玩過的一個FLASH小遊戲,可以養小動物,使用滑鼠點,寵物會跑到你的滑鼠位置跟你撒嬌。根據這種概念來實作這次的程式,好像也有一點兒像。
        製作上遭遇的困難其實不多,都是一些寫程式的小毛病,像是變數寫錯,重複設到參數之類的,運作的時候就有點詭異。看來我的C++有空應該要去旁聽一下。

沒有留言: