LabVIEW小游戲實體 / 超級像素鳥 / Super Flappy Bird / 布爾燈趣味編程
- 1. 游戲簡介
- 2. 實作方法
- 2.1 管道背景產生
- 2.2 背景移動機制
- 2.3 像素鳥降落起飛機制
- 2.3.1 降落機制
- 2.3.2 起飛機制
- 2.4 碰壁機制
- 2.4.1 碰撞墻面檢測
- 2.4.2 碰撞管道檢測
- 2.5 得分機制
- 2.6 開場語與結束語
- 3 相關說明
1. 游戲簡介
想必大家都玩過像素鳥(FlappyBird),這是基于LabVIEW的超級像素鳥(SuperFlappyBird),為什么說超級呢,因為在這個游戲中,小鳥是一個布爾燈,沒錯,一個小綠點,1x1 極致像素,小鳥會自動下墜,按下“空格”可以升高小鳥的位置,躲避綠色管道,獲得更高的分數吧!加油,年輕人!

2. 實作方法
2.1 管道背景產生
- 通過初始化陣列產生一個大小為 15×5000 ,數值為“0”的二維布爾燈陣列,
- 將每等距的 10 列布爾燈中前3列替換為“1”,
- 產生一個大小為 7×3 ,數值為“0”的布爾燈陣列,并通過產生 0~8 的隨機整數陣列決定該陣列的替換縱坐標,分別對每等距的 10 列布爾燈中前3列進行替換,

2.2 背景移動機制
該部分機制類似于滾動LED廣告牌,產生的管道背景為 15×5000 的布爾燈二維陣列,但是前面板的顯示框無法達到該長度,所以通過回圈不斷洗掉第0列元素并將其插入陣列的末尾列后即可造成背景向左移動的視覺效應,

2.3 像素鳥降落起飛機制
起飛降落機制是該游戲的核心之一,像素鳥其實只為一個布爾元素,由一個數字即可控制像素鳥的高度,這里需要像素鳥具有自降落功能,并且具有按下起飛功能,
2.3.1 降落機制
像素鳥每隔一定延時(這里為 250×1 ms=250 ms ,通過這樣的結構方便起飛中對像素鳥的實時控制,即不會因為降落延時而使像素鳥無法起飛),控制像素鳥高度的數值 +1 ,完成像素鳥的自降落,
2.3.2 起飛機制
通過事件結構檢測空格是否按下:如果空格按下,控制像素鳥高度的數值 -1 ,像素鳥完成向上起飛 1 次,(檢測空格鍵是否按下的方式為檢測 V鍵 = ASCII ?)

2.4 碰壁機制
碰壁機制為該游戲的最核心部分,通過碰壁機制判斷像素鳥是否觸碰到管道或者上下墻面:如果觸碰到,保留當前得分,游戲結束,
2.4.1 碰撞墻面檢測
如果控制像素鳥高度的數值大于14或小于1,則判斷像素鳥已經碰撞到墻壁,游戲結束,
2.4.2 碰撞管道檢測
這里需要對每一列分別判斷:每10列中后七列不具有管道,不對其進行判斷;前三列具有管道,需要依次對其判斷是否小于等于2.1中產生的隨機整數或大于等于隨機整數+7,如果符合,則判斷碰撞管道,游戲結束,

2.5 得分機制
使像素鳥每穿過一次管道分數 +1 即可,每穿過一次管道需要移動有管道的3列以及沒有管道的7列,共10列,故對回圈計數除10,得到的商即為得分,

2.6 開場語與結束語
通過按鈕對話框控制元件來在游戲開始時彈出開場語,在游戲結束后彈出結束語,使開始時玩家有時間進行反應,結束后得到鼓勵,使整個程式更加健壯完整,


3 相關說明
- 該 LabVIEW 小游戲玩法參照了 Dong Nguyen 先生的《Flappy Bird》,希望大家尊重原創,
- 該程式作者為太原理工大學的一名19級本科生,程式有很多地方不夠專業和細節,希望大家多多包涵,程式已經上傳,供大家下載,希望大家可以從中學習到一些東西,也希望大家可以對其完善,修改,
下載地址
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248168.html
標籤:其他
