【问题标题】:How to tell if a key has been released in Love2d如何判断 Love2d 中是否已释放密钥
【发布时间】:2017-07-18 17:14:40
【问题描述】:

我想在我的游戏中添加一个技能,如果你按住 t,敌人就会减速。 love.keyboard.isDown 不会让我在松开 t 键后让敌人恢复到原来的速度。他们是我可以做到这一点的另一种方式吗?

【问题讨论】:

    标签: lua love2d


    【解决方案1】:

    使用love.keyreleased

    请注意,与love.keyboard.isDown 不同,它是一个回调函数。当释放键 t 时,使用它来注册动作。

    【讨论】:

    • 如何才能使我只能使用该能力一次? @余浩
    • @BenHarvey - 将example 中的“escape”替换为“t”
    【解决方案2】:

    如果你检查false 的时间,使用love.keyboard.isDown 会让你恢复原来的速度,就像这样:

    if love.keyboard.isDown('t') then
        enemy_speed = 15
    else
        enemy_speed = 30 -- 't' key has been released
    end
    

    但还有另一种方法可以做到这一点。使用love.keypressedlove.keyreleased,像这样:

    function love.keypressed(key)
        if key == 't' then
            enemy_speed = 15
        end
    end
    
    function love.keyreleased(key)
        if key == 't' then
            enemy_speed = 30 -- 't' key has been released
        end
    end
    

    【讨论】:

      【解决方案3】:

      如果我理解的话,love.keyboard.isDown("t") 是针对 love.update() 函数的,无论如何它都会重复该函数。所以在这种情况下,在你的 main.lua 文件中创建一个这样的函数:

      function love.keypressed(k)
          if k == "t" then
              // Code goes in here
          end
      end
      

      像这样,一旦按下键,它就会激活。

      【讨论】:

        猜你喜欢
        • 2013-08-20
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多