Love2D 值更新太快
Love2D values updating too fast
我正在制作这个游戏,它涉及敌人。他们保持相同的速度很无聊,所以我希望敌人的速度随着玩家得分的提高而增加。很难用爱来制作某些算法,因为几乎所有的东西都是用这个游戏引擎每一帧更新的。这就是现在真正给我带来问题的原因。
我的逻辑的第一部分是正确的(enemy.speed
在 player_score
通过 10 之后增加的部分)但是一旦它通过(或达到)10, enemy.speed
值将继续每帧增加 10。即使使用 enemiesReadyToSpeedUp
布尔值,我也是出于这个原因专门设置的! (阻止 enemy.speed
快速增加)
因此,一旦玩家得分超过 10,游戏将无法玩,因为敌人开始在 "speed of light."
处移动
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
每帧都增加了,我得到了与第一个错误相同的结果。
你的错误是在 enemySpeedUp()
函数中用 0
初始化 scoreLimit
。
将该作业移出,在设置初始 player_score
值的同一位置进行。
我正在制作这个游戏,它涉及敌人。他们保持相同的速度很无聊,所以我希望敌人的速度随着玩家得分的提高而增加。很难用爱来制作某些算法,因为几乎所有的东西都是用这个游戏引擎每一帧更新的。这就是现在真正给我带来问题的原因。
我的逻辑的第一部分是正确的(enemy.speed
在 player_score
通过 10 之后增加的部分)但是一旦它通过(或达到)10, enemy.speed
值将继续每帧增加 10。即使使用 enemiesReadyToSpeedUp
布尔值,我也是出于这个原因专门设置的! (阻止 enemy.speed
快速增加)
因此,一旦玩家得分超过 10,游戏将无法玩,因为敌人开始在 "speed of light."
处移动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
每帧都增加了,我得到了与第一个错误相同的结果。
你的错误是在 enemySpeedUp()
函数中用 0
初始化 scoreLimit
。
将该作业移出,在设置初始 player_score
值的同一位置进行。