這次上機考沒有寫出隨機50隻蚊子、打蚊子和計分功能,只寫出了拍子膚色偵測移動。經過找資料和請教同學後現在已經會寫了。寫隨機50隻蚊子要先有mx[50],my[50],ml[50]三個陣列分別儲存50隻蚊子的x座標、y座標和判斷是否存活。之後用for迴圈和rand()就可設定出50隻蚊子的隨機x,y位置,並把迴圈內ml[i]的值先全部設為1來代表存活。接著用for迴圈和if來判斷拍子是否有打到蚊子,這裡的判斷可以有很多種訂法,像是要蚊子整張圖在拍子圖內才算打到,還是蚊子圖的中心有碰到拍子圖就算打到等,判斷打到後則設ml[i]=0來代表該隻蚊子被打死,然後迴圈內再用if來判斷ml[i]==1,如果為1表示蚊子存活,則印出在畫面上。最後計分部分,要先設一個變數int num=0來記錄目前分數,判斷打到蚊子後num就加1,再利用itoa函數來讓num轉為char的字串變數後,就可用cvPutText()函數來顯示出分數了,當num等於50時表示全部蚊子都被打死,可再用cvPutText()函數來顯示出過關文字。
沒有留言:
張貼留言