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 –