Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Love2D值更新太快_Performance_Methods_Lua_Love2d - Fatal编程技术网

Performance Love2D值更新太快

Performance Love2D值更新太快,performance,methods,lua,love2d,Performance,Methods,Lua,Love2d,我正在做这个游戏,它涉及到敌人。对他们来说保持同样的速度是很无聊的,所以我希望敌人的速度随着玩家得分的提高而提高。很难用love来制作特定的算法,因为大多数情况下,每一帧都会用这个游戏引擎更新。这就是我现在的问题所在 我的逻辑的第一部分是正确的(在player_得分通过10后,敌方.速度增加的部分),但一旦通过(或达到)10,敌方.速度值将继续每帧增加10。即使使用我专门为此设置的enemiesReadyToSpeedUp布尔值!(阻止敌人速度快速增加) 因此,一旦玩家得分超过10,游戏将无法进

我正在做这个游戏,它涉及到敌人。对他们来说保持同样的速度是很无聊的,所以我希望敌人的速度随着玩家得分的提高而提高。很难用love来制作特定的算法,因为大多数情况下,每一帧都会用这个游戏引擎更新。这就是我现在的问题所在

我的逻辑的第一部分是正确的(在
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