LabVIEW FP物件並不能被消滅(至少我沒找到) 只能被隱藏
所以一開始就要布置在FP上而且要盡可能重複使用
FP上物件的位置可以從property取得, 同理也用property控制
FP往下是Y+,往右是X+, 利用while loop, 每個loop都改變一點位置
加上適當的delay即可製造出物件移動的錯覺
下圖是障礙物移動demo的snippet, 另存之後直接拖曳到BD空白處即可使用
在BD上的Obs indicator按右鍵-->creat-->property node-->position就可以找到位置屬性
在LabVIEW,只會有左和上這兩個屬性, 右和下屬性必須自己用物件寬高計算
demo程式的LED物件每loop都更新Left位置往左5格, 直到左邊界位置小於0就重置為600
但不可能障礙物每次重置都是同一個高度, 這樣沒有遊戲性
所以每次Left重置時, 一併隨機改變Top的值
X*80是讓Top變動值在0~80, -1^int(X*10)是讓Top隨機往上或下移
當然也可以改成每個loop的Left/Top兩項都會改變
球的控制分兩部分: 自由落體, 按鍵後往上, demo程式暫時先用event來實現
這邊還另外用了個button當ground, 避免球自由落體到無限遠處
把timeout設50觸發timeout event
裡面放讓球自由落體的程式, 使用0.5*a*(t2^2-t1^2)公式描述位置變化(圖示公式有錯)
不是用自由落體公式0.5*a*t^2是因為這是總時間落下距離不,是每單位時間
另外若球下緣位置更新後會超過ground top就設定為ground top
新增一個Keydown Event
比對鍵盤按下的是否為空白鍵(scancode=57),
不是就do nothing, 是球就往上移30, 但不能往上移超過天花板(y=0)
球的控制用這個方法在實際遊戲操作會造成問題,按下的鍵不是空白時整個畫面會停住
所以僅在demo中使用