如何判断 Love2d 中的按键是否被释放

我想在我的游戏中添加一个功能:如果按住 t,则敌人会减速。但是 love.keyboard.isDown 不会让我将敌人恢复到它们原来的速度,一旦释放了 t 键怎么办?还有其他方法可以做到这一点吗?

点赞
用户1009479
用户1009479

使用 love.keyreleased

请注意,与 love.keyboard.isDown 不同,它是一个回调函数。使用它在按键 t 松开时注册该操作。

2017-05-18 08:39:28
用户7093630
用户7093630

如果我理解正确的话,love.keyboard.isDown("t") 只与 love.update() 函数有关,而且不管怎样都会重复执行该函数。所以在这种情况下,在你的 main.lua 文件中创建一个如下的函数:

function love.keypressed(k)
    if k == "t" then
        // 放置代码在这里
    end
end

像这样,一旦按下键,则会激活该功能。

2017-05-22 20:19:19
用户6561910
用户6561910

使用 love.keyboard.isDown 可以让你在检查它是否为 false 时将它们的原始速度恢复,方法如下:

if love.keyboard.isDown('t') then
    enemy_speed = 15
else
    enemy_speed = 30 -- 't' 键已释放
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' 键已释放
    end
end
2017-06-13 23:34:21