2020-06-16|閱讀時間 ‧ 約 2 分鐘

Flappy bird like LabVIEW game遊戲 (3) - 碰撞判定

    Labview並沒有檢測元件overlap的功能,所以每個loop都要檢查所有障礙是否和球碰撞

    首先檢查球是否位於障礙物1, 2之間的區域,上下障礙物X軸位置是一致的

    如果是再近一步檢查求上緣小於3的位置或下緣小於4的位置

    若其中一項成立則判定碰撞結束程式

    另外若障礙物4的位置通過球到球的左側,就可以判定通過這一組障礙

    程式snippet如下,另存後直接拉到BD

    因為轉換上有一點問題

    必須手動把三個reference control改成VI server reference才能正常執行 (如下)

     

    到這邊事實上有個嚴重的問題:LabVIEW的FP上所有物件其實都是矩形

    所以像是範例裡用的圓LED這樣的物件有時判定碰撞了但在FP視覺上是沒碰到的

    處理方法有3

    第一是不要用圓形的control

    第二是重新定義物件的圓形邊界,在另一個Pong遊戲我是這樣處理的

    第三是用自訂control,在control上蓋上比control略大的不規則圖案

    因為遊戲需要本來就要修改球的外觀,所以選擇方法3

    如圖選擇要自訂的control後選edit-->customize control...會開啟一個新視窗

    把要貼的圖貼上後另存新的clt檔,之後我們就用這個自定的control

    圖移到想要的位置之後要記得把圖和control用Lock鎖定,不然是可以分開拉動的

     

     

     

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