如何在按下键时加一?

How to increment by one when key is pressed?

使用 love2d,我无法在发生某些事情时将变量递增 1。

例如,当 space 栏被按下时,我希望 x 只增加一个,并且在再次按下 space 栏之前不再改变。目前,当 space 条下降时,它会以非常快的速度继续添加一个,并一直持续到我释放 space 条。

这是现在的代码示例。

function love.load()
    x = 0
end

function love.update(dt)
    if love.keyboard.isDown(" ") then
        x = x +1
    end
end

function love.draw()
    love.graphics.print("space pressed for "..x.." times.",100,100)
end

您可以使用 love.keypressed 事件处理程序获得更好的结果。

function love.load ()
    x = 0
end

function love.keypressed (key)
   if key == ' ' then
      x = x + 1
   end
end

function love.draw ()
    love.graphics.print ("space pressed for "..x.." times.", 100, 100)
end

如果您有重复键,通过 love.keyboard.setKeyRepeat:

love.keyboard.setKeyRepeat (true)

function love.load ()
    x = 0
end

function love.keypressed (key, rep)
   if key == ' ' and not rep then
      x = x + 1
   end
end

function love.draw ()
    love.graphics.print ("space pressed for "..x.." times.", 100, 100)
end