我正在制作这个游戏,它涉及敌人。他们保持相同的速度是非常无聊的,所以我希望随着玩家得分越高,敌人的速度越快。用爱来制作某些算法是很困难的,因为大多数情况都是用这个游戏引擎每帧更新。这就是现在实际上给我的问题。
我的逻辑的第一部分是正确的(enemy.speed
在player_score
通过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
我尝试过的事情:
enemy.speed = enemy.speed + player_speed
,但这是一个非常明显的错误,因为enemy.speed
每一帧都增加了,我得到的结果与我的第一个错误相同。答案 0 :(得分:0)
您的错误是在scoreLimit
函数内0
初始化enemySpeedUp()
移出该分配,在您设置初始player_score
值的相同位置执行此操作。