Performance Love2D值更新太快
我正在做这个游戏,它涉及到敌人。对他们来说保持同样的速度是很无聊的,所以我希望敌人的速度随着玩家得分的提高而提高。很难用love来制作特定的算法,因为大多数情况下,每一帧都会用这个游戏引擎更新。这就是我现在的问题所在 我的逻辑的第一部分是正确的(在Performance Love2D值更新太快,performance,methods,lua,love2d,Performance,Methods,Lua,Love2d,我正在做这个游戏,它涉及到敌人。对他们来说保持同样的速度是很无聊的,所以我希望敌人的速度随着玩家得分的提高而提高。很难用love来制作特定的算法,因为大多数情况下,每一帧都会用这个游戏引擎更新。这就是我现在的问题所在 我的逻辑的第一部分是正确的(在player_得分通过10后,敌方.速度增加的部分),但一旦通过(或达到)10,敌方.速度值将继续每帧增加10。即使使用我专门为此设置的enemiesReadyToSpeedUp布尔值!(阻止敌人速度快速增加) 因此,一旦玩家得分超过10,游戏将无法进
player_得分通过10后,敌方.速度
增加的部分),但一旦通过(或达到)10,敌方.速度
值将继续每帧增加10。即使使用我专门为此设置的enemiesReadyToSpeedUp
布尔值!(阻止敌人速度快速增加)
因此,一旦玩家得分超过10,游戏将无法进行,因为敌人开始以“光速”移动
我尝试过的事情:
- 编写这个函数时,没有任何布尔值,基本上是一样的。(意思是当玩家的速度超过10时,我增加敌人的速度。而不是使布尔值为真,然后根据布尔值增加敌人的速度)
- 对敌人需要加速的所有可能的组合进行硬编码。但这需要大量的if语句,效率非常低,而且通常是糟糕的编码实践。但它确实有效,而且我实际上正在考虑这样做,如果其他方法都不起作用的话
- 最后,我还尝试了
,但这是一个相当明显的错误,因为敌军。速度=敌军。速度+玩家速度
每帧都在增加,我得到的结果与我的第一个错误相同敌军。速度
enemypeedup()函数中使用0
初始化scoreLimit
。
将作业移出,在您设置初始player\u分数
值的同一位置进行。omg,非常感谢您,我甚至没有意识到我在这么做@弗拉德
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