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

How to map to controls into an NES emulator with Lua?

我正在尝试做一些类似于 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 不适合设置输入,因为它们除了覆盖玩家输入外似乎没有做任何事情。

您在这里的任何时候实际上都没有分配到 `inputTable。

变量vfor循环中的局部变量。这不是 pointer/reference/etc。到 table.

中的值

要分配给 table,您需要在循环中实际分配给 inputTable[k]