LUA-有没有一种方法可以将用户的输入分配为表的键?

时间:2020-08-23 08:45:50

标签: input lua

我是编程的初学者,我想知道用户输入是否可以成为表的键以及如何完成该表。

2 个答案:

答案 0 :(得分:0)

用户输入与“系统编程”有关,并且在很大程度上取决于您的平台。 Lua无法访问与系统相关的内容,例如输入,图形或音频,因此您需要使用库/框架。例如,love2d.org是一个很好的Lua框架,可以处理很多系统内容。以下示例仅检查WASD密钥,但您可以轻松地将其扩展为检查所有密钥:

state = {}
keys = { "w", "a", "s", "d" }
function love.update(dt)
  for i, key in ipairs(keys) do
    local s = love.keyboard.isDown(key)
    if state[key] ~= s then
      state[key] = s
      if isdown then
        -- key press event
      else
        -- key release event
      end
    end
  end
end

替代方法可以使用回调:

state = {}
function love.keypressed(key)
  state[key] = true
end
function love.keyreleased(key)
  state[key] = false
end

答案 1 :(得分:0)

您可以使用io.read来获取用户输入,并且可以轻松地将该输入用作表键。以下程序是一个非常简单的示例,输出其输入。

local t = {
  [io.read()] = true,
}

-- next gets a key-value pair from t. The extra parentheses are to avoid
-- printing 'true' along with the key.
print((next(t)))
相关问题