德爾塔時間不會工作,無論我嘗試。我得到這個錯誤如何獲得德爾塔時間愛上工作
player.lua 39:試圖對全球 'DT' 執行算術(一個零值)
函數 '更新' 在功能'player_move'
函數[C]:我做了所有氈 'xpcall'
對,它顯然認爲我在談論一個不存在的變量。我應該做dt = 1
?
如果我這樣做,它仍然看起來像它在不同的步伐中偶爾移動,沒有教程或文檔我見過告訴你這樣做。
德爾塔時間不會工作,無論我嘗試。我得到這個錯誤如何獲得德爾塔時間愛上工作
player.lua 39:試圖對全球 'DT' 執行算術(一個零值)
函數 '更新' 在功能'player_move'
函數[C]:我做了所有氈 'xpcall'
對,它顯然認爲我在談論一個不存在的變量。我應該做dt = 1
?
如果我這樣做,它仍然看起來像它在不同的步伐中偶爾移動,沒有教程或文檔我見過告訴你這樣做。
請確保您將love.update
函數定義爲love.update(dt)
(請參閱love wiki上的示例);如果從love.update
打電話給你player_move
功能,那麼你就需要一個參數添加到dt
和player_move
值傳遞給它:
local function player_move(dt)
-- do something with dt
end
function love.update(dt)
player_move(dt)
end
Main.lua:40試圖瓶坯對全球「shoottimer」算術(一個零值)
在代碼它看起來像這樣:
ShootCoolDown = 0.2
Shoottimer = ShootCoolDown
--some code
Function love.update(dt)
Shoottimer = Shoottimer - (1 * dt)
我不知道發生了什麼事錯了!
您不必初始化dt變量,它已經爲您完成了。如果您試圖在love.update
函數中獲得Delta Time,您可以立即使用dt
變量,並且不會遇到任何問題,但此變量不是全局變量,因此如果您嘗試在另一個地方訪問此變量(說你love.draw
功能或player.lua
)您有其他三個選項:
love.timer.getDelta
功能(推薦)此功能可能得到增量時間的最佳方式。下面是一個例子用法:
whatever*love.timer.getDelta()
很簡單吧!
這是不是真的做到這一點的最好辦法,但它是一個選項。這裏是一個辦法做到這一點和一些用法示例:
在love.update
:
function love.update(dt)
DeltaTime = dt
end
一些實例應用:
whatever = whatever*DeltaTime
這不是一個壞的方法來做到這一點,真正的問題是它這是因爲你從love.update
調用你的函數,所以你的函數不斷地被調用(你可能不想這樣做。 )
在love.update
:
function love.update(dt)
player_move(dt)
end
某些實例應用:
function player_move(dt)
whatever = whatever*dt
end
'DT = DeltaTime'是向後在設置全局例子。 「DeltaTime = dt」是正確的,因爲您正在將'dt'分配給'DeltaTime' – ATaco