只需按一下按钮

时间:2016-02-29 00:54:33

标签: lua

我正在创建一个即将播放视频游戏的程序。当它读到他们是RAM值0x0016的敌人时,它需要按B.我想也许是因为我的while循环B被垃圾邮件太多了?我不确定。目前,在FCEUX上,它表示B按钮被按下,但它保持橙色。我需要按下B按钮一次。

这是我的代码:

JoypadB = {B=true}
JoypadRight = {right=true}

while (true) do
   c = memory.readbyte(0x0016);

   if (c == 6 ) then
      joypad.set(1,JoypadB)

   else
      joypad.set(1,JoypadRight)

   end;

   gui.text(100,100,c);
   emu.print(c);

    emu.frameadvance();
end;

1 个答案:

答案 0 :(得分:1)

这个问题并不是关于FCEUX的,而且它并不是真的关于lua。它只有95%的编程,但一些视频游戏常识会有所帮助。按钮被反复按下,因为0x0016重复包含6。只要有敌人,添加一个切换按钮即可实现重复拍摄。您可能需要选择不同的turbo间隔,这是在此示例中所做的:

[a]->a

或者,为了做你真正要求的事情,假设敌人只需要一次击杀,那么只需按下按钮一次,等到下一次敌人消失然后重新出现:

JoypadB = {B=true}
JoypadRight = {right=true}
toggle = 0
while (true) do
    c = memory.readbyte(0x0016);
    if (c == 6) then
        if(toggle==0) then
            joypad.set(1,JoypadB)
            toggle = 1;
        else
            joypad.set(1,JoypadRight)
            toggle = 0;
        end
    else
        joypad.set(1,JoypadRight)
    end;
    emu.frameadvance();
end;