1. 程式人生 > >[文件和原始碼分享] 基於WIN32 API介面程式設計實現的Flappy Bird小遊戲

[文件和原始碼分享] 基於WIN32 API介面程式設計實現的Flappy Bird小遊戲

Flappy bird是一款卷軸類的躲避遊戲。設計中可用空格操控遊戲的開始和暫停,通過控制向上的方向使小鳥不斷向上飛,但是不能落到地面和上邊界也不能撞到障礙物,否則遊戲結束彈出“Game Over!”的視窗。遊戲可以通過堅持的時間控制障礙物移動的速度,從而加大遊戲難度。

 

障礙物是用Windows下API的筆畫出來的,主要的移動和儲存是用二維陣列實現的。牆的缺口實現是用二維陣列將整個視窗縱向的分為了三個部分,用布林型別有缺口為True,無缺口為False,每個障礙物都隨機生成一個True。移動就是座標的移動,障礙物的橫座標加上移動速度,事實上在整個遊戲中只有五根障礙物,當障礙物的橫座標大於視窗的寬度時移到開始位置重新生成缺口。

 

畫小鳥是用貼點陣圖實現的,小鳥的跳動需要計時器,其實就是設定了初始速度和加速度,通過時間段內的位移改變小鳥的縱座標實現的。小鳥事實上只能上下移動,它的飛翔是通過障礙物的移動造成錯覺實現的。

 

碰撞問題就是判斷小鳥和障礙物的座標是否重合,但是由於障礙物是由二維陣列儲存的而小鳥的縱座標為位移,所以把視窗分為上中下三個區域,再用座標判斷。

 

https://www.write-bug.com/upload/image/89/b9cb8cc293604a2873eb9deff6a947aa.jpg

 

詳細的開發文件和程式原始碼我都分享在了個人部落格上了,感興趣的可以去看看:

https://www.write-bug.com/article/1741.html