如何使用 Lua 映射控件到 NES 模拟器?

我正在尝试做类似于 Mari/o 的事情,但是采用不同的 AI 原理和技术。

然而,我在尝试弄清楚如何将 Lua 脚本中的输入发送到模拟器时遇到了麻烦(例如,上下左右 A B 等)。

我正在尝试弄清楚编写 Mari/o 脚本的人是如何实现的,但是我想了很久也没明白它是如何工作的。

所以,可以有人请解释一下如何将输入映射到 NES 模拟器吗?

到目前为止的代码(这是使用 FCEUX 模拟器)

inputTable = joypad.read(1);

for k, v in pairs (inputTable) do
  if(k == "right") then
    v = true;
  end;
  print(k, v);
end;

while (true) do
  joypad.set(1, inputTable);
  joypad.write(1, inputTable);
  emu.frameadvance();

end;

但是,我认为 joypad.set 或 joypad.write 并不正确,因为它们似乎除了覆盖玩家输入之外什么也没有做。

点赞
用户258523
用户258523

你在这里并没有实际将值分配给 inputTable

变量 vfor 循环中的局部变量。它不是指向表中值的指针/引用等。

要将值分配给表,你需要在循环中实际分配到 inputTable [k]

2016-05-04 01:18:42