--***************************************************
-- drawButtons() -->
--***************************************************
local flyPlane = function(event)
if event.phase == "began" and gameIsActive == true then
print("began")
physics.setGravity(0, -10)
elseif event.phase == "ended" and gameIsActive == true then
print("ended")
physics.setGravity(0, 7)
inBound = true
elseif event.phase == "moved" and gameIsActive == true then
-- do nothing
end
end
--***************************************************
-- keepPlaneInBound() -->
--***************************************************
local keepPlaneInBound = function()
-- print("checking")
if paperPlane.y <= paperPlane.height + 10 and gameIsActive == true and inBound == true then
inBound = false
paperPlane.y = paperPlane.height + 12
end
if paperPlane.y > display.contentHeight - paperPlane.height - scale.height and gameIsActive == true then
paperPlane.y = display.contentHeight - paperPlane.height - scale.height
end
end
函數flyPlane在「touch」eventlistner上設置,keepPlaneInBound被設置爲「enterframe」eventlistner。我想達到的是當飛機超過上限。其之前的physcis.setGravity值將被完全刪除,並且在用戶擡起手指時(當事件=「結束」時)將分配給它的新值。 奇怪的是它不接受新的physics.setGravity()值。如果我使用physics.pause(),然後爲其分配新的重力值。在physics.start它首先完成,因此再向上移動它以前setGravity值的部分..:/賦值physics.setGravity一個不同的值
有一個先天沒有錯,你的重力代碼,不知道的邊界檢查,因爲它看起來像有在'keepPlaneInBound'一個額外的「結束」,這將導致語法錯誤。所以請糾正它,並編輯你的問題,以顯示你註冊事件回調的代碼,這可能是錯誤的地方。 – Schollii
@Schollii。嗨,謝謝你幫助我。這裏所說的「結局」是錯誤的。我已經編寫了代碼。現在代碼就是它在我的記事本++中的樣子。 –
好,但正如我所提到的,我看不出您的代碼有什麼問題,我甚至嘗試在測試應用程序中更改引力,並且它工作正常,所以問題與代碼不顯示。請顯示您的addEventListener調用,以及您用來調用這兩個函數的任何其他代碼。 「函數flyPlane設置爲」touch「」enterframe「eventlistner」沒有意義,需要看代碼。 – Schollii