回答
timer.script並不是真的爲你想要做的事情設計,儘管它可能有可能得到它的工作。
LÖVE框架是圍繞draw()
和update()
回調建立的,我建議學習如何使用這些回調來完成這個任務,然後繼續研究這些回調之上的方法。這樣的事情應該運行您的代碼只有一次,當第一次見到你的條件:
local hasHappened = false
function love.update(dt)
if (condition and not hasHappened) then
hasHappened = true
-- respond to condition here
end
end
通常情況下,你就不會直接在love.update()
檢查你的病情。相反,您將擁有一個包含遊戲中所有對象的表格,並在love.update()
中循環顯示該對象表格,並在每個對象上調用update()
方法。這給每個對象一個機會來檢查不同的條件並對它們做出響應。
另一種方法是命名您的條件,並使用事件系統(如beholder)在情況發生時觸發事件(以及任何已註冊的回調函數)。
或(前提是您的計時器的update()被調用在love.update()
),你可以用你的計時器對象做到這一點和every()
方法:
local handle = timer:every(0.01, function()
if condition then
-- unregister timer, assuming you only want the code to be run once
timer:cancel(handle)
-- respond to condition here
end
end)
如何使用timer.cancel? – arthurgps2
arturgps2:「計時器」實際上更像是一個時鐘而不是計時器,因爲它同時管理多個計時器。爲了取消一個定時器,就像上面的代碼示例中的'every()'一樣,你需要像上面那樣存儲一個句柄(一個引用)到那個特定的':every()'定時器,並且將它作爲'cancel()'的第一個參數。注意使用冒號':cancel'而不是點符號'.cancel',因爲這是一個方法調用。這就是我所能想到的一切,如果你有更多的問題,你需要更具體一些。 –
其實我忘了把'timer.update'換成'love.update',但這個建議對我也有幫助。謝謝您的幫助。 – arthurgps2
- 1. 我如何讓遊戲在Love2D上等待?
- 2. 我該如何等待JavaScript的結果?
- 3. 如何使函數在LUA(Love2d)中等待X時間?
- 4. 我該如何等待拉力?
- 5. 我該如何等待Angular4 HttpClient響應?
- 6. 我該如何等待回調?
- 7. 我該如何等待TTimer完成?
- 8. 我該如何等待Parallel.ForEach完成
- 9. 我該如何等待HANDLE/SafeHandle?
- 10. 我該如何等待ABPeoplePickerNavigationController被解僱
- 11. 在Java中等待條件
- 12. 如何等待任何條件變量?
- 13. 我該如何等待在javascript中執行事件
- 14. 我應該等待AutoView嗎?
- 15. 如何用條件等待任務?
- 16. 使用Boost的ASIO,我該如何等待Windows事件?
- 17. 等待的條件繼續
- 18. 我該如何等待初始化組件被執行
- 19. 我該如何等待Angularfire 2中的觀察值?
- 20. 我應該如何等待Python 2和Python 3中的按鍵?
- 21. 條件檢查等待有利條件
- 22. Pthread和等待條件
- 23. 等待條件變量
- 24. GCD:異步等待條件
- 25. C++:條件變量等待
- 26. Boost線程等待條件
- 27. 等待string.contains()條件滿足
- 28. tomcat:等待條件線程
- 29. 我們如何等待NOT條件使用protractor.ExpectedConditions?
- 30. 在Perl中,我該如何等待線程並行結束?
沒有工作,是不是正確的錯誤描述。請閱讀[問] 也不清楚你在等待什麼,如果你想等待或沒有做其他事情。你還應該提供更多的代碼和上下文。什麼是timer.script?我只能假設它來自HUMP庫,如果你什麼都不做,只等0秒會發生什麼? – Piglet
您是否正在尋找一個在給定事件上被調用的函數(即每次按下某個鍵時觸發的按鍵的回調函數)或類似於do-while循環的函數? – Thelmund
我用hump.timer和timer.script是一種使用'wait'而不是'timer.after'的方法 – arthurgps2