0
我正在製作這款遊戲,它涉及到敵人。對於他們來說保持相同的速度是相當無聊的,所以我希望當玩家得分更高時敵人的速度會增加。用愛來製作某些算法是很困難的,因爲大多數情況下,每一幀都用這個遊戲引擎更新。這就是現在實際給我的問題。Love2D值更新太快
我的邏輯的第一部分是正確的(其中player_score
後enemy.speed
增加經過10的部分),但一旦它傳遞(或達到)10,enemy.speed
值將繼續由10每幀增加。即使我專門爲此設置了enemiesReadyToSpeedUp
布爾值! (以防止enemy.speed
快速增加)
所以一旦玩家分數超過10,遊戲就變得無法玩,因爲敵人開始以「光速」移動。
function enemySpeedUp()
-- Once player score > scoreLimit + 10, enemy's speed will increase by 10,
-- and the scoreLimit will increase by 10
enemiesReadyToSpeedUp = false
scoreLimit = 0
if(player_score >= scoreLimit + 10) then
enemiesReadyToSpeedUp = true
end
if(enemiesReadyToSpeedUp == true)then
enemy.speed = enemy.speed + 10
scoreLimit = scoreLimit + 10
enemiesReadyToSpeedUp = false
end
end
事情我已經嘗試:
- 沒有任何布爾寫這個功能幾乎相同。 (這意味着一旦玩家的速度超過10,我就提高敵人的速度,而不是布爾真實,然後根據布爾值提高敵人的速度)
- 硬編碼敵人需要加速的每種可能的組合。但是這需要大量的if語句,效率非常低,並且也只是一般的錯誤編碼練習。但它確實有用,而且我實際上正在考慮以這種方式來做這件事,如果沒有別的辦法。
- 最後,我也嘗試
enemy.speed = enemy.speed + player_speed
,但這是一個非常明顯的錯誤,因爲enemy.speed
增加了每一幀,我得到了同樣的結果作爲我的第一個錯誤。
omg,非常感謝你,我甚至沒有意識到我正在那樣做。 @Vlad –