摸魚
介紹:透過視訊畫面與虛擬魚缸中的魚互動
操作頁面及方式:
1. 點擊 Game.exe 開啟遊戲
1. 點擊 Game.exe 開啟遊戲
2. 系統將自動抓取、開啟攝影機,並生成水族箱
3. 如果抓取攝影機失敗,將回到第 2 步
3. 如果抓取攝影機失敗,將回到第 2 步
4. 觸摸遊戲中的魚,魚變成紅色並停止活動
遊戲特色:
一、水色覆蓋
保留畫面的 Y 值,至於 U、V 是與原畫面混合
來製作畫面沉沒在水中的感覺
二、水波效果
畫面模擬方式是透過三角函數計算每列像素的偏移位置
公式為 abs(偏移量 * sin(M_PI * (幀數 + 列數) / 180 )))
我為了避免邊界判斷太複雜,只取公式正值(後來發現僅取正值效果也很好)
幀數為隨時間遞增、循環的量,M_PI 為圓周率(sin 用弧度)
三、水草繪製
每次開啟程式時,畫面下方生成長度不一的水草
另外水草的寬度、顏色,以及飄動都是獨立計算的
畫面先套用水波效果,水草的晃動不受水波影響(而且公式改用 cos 函數)
一、水色覆蓋
保留畫面的 Y 值,至於 U、V 是與原畫面混合
來製作畫面沉沒在水中的感覺
由左至右,依序是原圖、覆蓋水藍 30%、覆蓋水藍 90% (點擊放大) |
二、水波效果
畫面模擬方式是透過三角函數計算每列像素的偏移位置
公式為 abs(偏移量 * sin(M_PI * (幀數 + 列數) / 180 )))
我為了避免邊界判斷太複雜,只取公式正值(後來發現僅取正值效果也很好)
幀數為隨時間遞增、循環的量,M_PI 為圓周率(sin 用弧度)
水波效果 |
三、水草繪製
每次開啟程式時,畫面下方生成長度不一的水草
另外水草的寬度、顏色,以及飄動都是獨立計算的
畫面先套用水波效果,水草的晃動不受水波影響(而且公式改用 cos 函數)
3 種隨機生成的水草佈景 |
遭遇的困難:
本遊戲是採用膚色偵測,但是膚色容易受到其他相似顏色的干擾;
另外就是畫面的扭曲效果,需要熟悉宏像素的 index 才能實作。
原本是想寫成類似養魚遊戲,但魚餌、魚以及畫面的互動很難設計。
遊玩影片:
沒有留言:
張貼留言