首页 > 解决方案 > 为什么我们要创建一个单独的函数来检测其他类的输入

问题描述

这是来自 CS50 的游戏开发讲座。我们已经有一个表来检测输入(即love.keyboard.keysPressedmain.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

整个游戏的代码可以在这里找到

感谢你们花时间阅读这个问题

编辑:据我了解,

标签: lualove2d

解决方案


该函数love.keypressed(key)不返回任何内容,并且表在更新love.keyboard.keysPressed[key]后被重置,main.lua因此我们调用一个函数在该特定时间直接对任何输入执行检查(即love.keyboard.wasPressed


推荐阅读