lua - 为什么我们要创建一个单独的函数来检测其他类的输入
问题描述
这是来自 CS50 的游戏开发讲座。我们已经有一个表来检测输入(即love.keyboard.keysPressed
)main.lua
:
function love.keypressed(key)
-- add to our table of keys pressed this frame
love.keyboard.keysPressed[key] = true
if key == 'escape' then
love.event.quit()
end
end
但是我们仍然main.lua
在其他类中使用了另一个函数:
function love.keyboard.wasPressed(key)
return love.keyboard.keysPressed[key]
end
用法示例(类名:)bird.lua
:
-- just sample code, ignore the functionality
if love.keyboard.wasPressed('space') or love.mouse.wasPressed(1) then
self.dy = -5
sounds['jump']:play()
end
整个游戏的代码可以在这里找到
感谢你们花时间阅读这个问题
编辑:据我了解,
解决方案
该函数love.keypressed(key)
不返回任何内容,并且表在更新love.keyboard.keysPressed[key]
后被重置,main.lua
因此我们调用一个函数在该特定时间直接对任何输入执行检查(即love.keyboard.wasPressed
)