LUA - 是否有一种方法将用户输入指定为表中的键?

我是一个编程新手,想知道是否可以将用户输入作为表格的键,并且如何操作。

点赞
用户13619683
用户13619683

用户输入与“系统编程”相关,且在很大程度上取决于您的平台。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
2020-08-23 10:44:39
用户3574628
用户3574628

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

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

-- next 从 t 中获取一个键值对。额外的括号是为了避免
-- 同时打印键和值 'true'。
print((next(t)))
2020-08-23 21:41:15