2020-06-17|閱讀時間 ‧ 約 3 分鐘

Flappy bird like LabVIEW game遊戲 (4) - 物件配置&程式

    首先把把FP大小設定為W450 * H500,要用到的物件、訊息框全部擺上FP,

    除了遊戲中不會再變更位置的物件都要先放到預定的位置

    這邊要稍微調整一下各物件階層關係,避免物件移動時意外被遮蓋

    背景部份用兩張一樣的圖交替,圖必須設定為最下層

     

    程式用sequence結構

    sequence0用來設定物件的初始狀態及初值

    另外把障礙物的reference群組化成array,方便後續處理物件移動及碰撞判定

    其中背景剛剛把它移到最下面兩層,所以把AllObjs[ ] array翻轉後取最前兩個就是背景的Ref

    sequence1設定會移動的物件初始位置以及展示上下飛的球

    單純就是用property的Top和Left來控制

    按start鍵後進入主要程式sequence2

    sequence2是控制物件位置更新和碰撞檢查,每個loop流程如下

    1. 首先檢查是否按下空白鍵
    2. 有:球往上移動,無:球自由落體
    3. 背景往左移一格
    4. 所有障礙物往左移一格
    5. 如果 i+1=150觸發額外的障礙物,這邊會額外檢查飛行障礙碰撞。
    6. 檢查是否有一般障礙物通過球左方,有則+1分並在畫面顯示+1
    7. 檢查碰撞,若有顯示總分結束遊戲。沒有就回到第一步

    這邊while loop用了三個shift register

    Frame是用來紀錄現在球是自由落下的第幾個時間單位,讓落下的行為更自然

    每次按下空白鍵讓球往上之後Frame會重置為1

    Score用來紀錄目前通過多少支障礙,每通過一支+1

    布林的register用來紀錄額外障礙物是否啟動,因為額外障礙不是和一般障礙一樣不斷循環

    當 i+1=150*n時觸發case,同時subvi會輸出true讓case一直處於啟動狀態

    直到障礙物到返回點重置位置後,subvi會輸出False等下一次觸發。

    如果要讓程式更加fancy而不是只能玩一次那就必須把結構改成state machine

    以上的程式可在google driver下載

     

    其他相關文章

     

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.