如何判断Love2d中是否已释放密钥

时间:2017-05-18 08:29:26

标签: lua love2d

我想在我的游戏中添加一个能力,如果你持有 t 那么敌人就会变慢。一旦 t 键被释放,l ove.keyboard.isDown将不允许我将敌人恢复到原来的速度。他们是我能做到的另一种方式吗?

3 个答案:

答案 0 :(得分:1)

使用love.keyreleased

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

答案 1 :(得分:1)

如果您检查love.keyboard.isDown的时间,则使用false会让您恢复原来的速度,如下所示:

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

答案 2 :(得分:0)

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

function love.keypressed(k)
    if k == "t" then
        // Code goes in here
    end
end
像这样,一旦按下键就会激活它。