我使用C编写了一个Game Boy游戏。我实现了一个可以上下移动的游标,具体取决于按下哪个按钮。如果按下UP键,则相应的位被设置在寄存器中。然后我让光标向上移动。游戏处于无限循环中。因此在下一次迭代中,仍然将寄存器视为已设置。我需要一些簿记来告诉我自己将来光标已经移动了,我应该忽略该位已设置的事实。我该怎么做呢?将按钮的寄存器标记为已读
编辑:这是我写的代码。基本上,当我按下向上按钮时,光标上升很多步骤。我希望它只需要一步。
if (KEY_DOWN_NOW(BUTTON_UP)){
if (row - 1 >= 0){
undrawCursor(row, column);
row--;
drawCursor(row, column);
}
}
else if (KEY_DOWN_NOW(BUTTON_DOWN)){
if (row + 1 <= 160){
undrawCursor(row, column);
row++;
drawCursor(row, column);
}
}
你是否正在处理某人按住UP按钮两次迭代,或者在他们发布并且已经读取之后该位未被清除?这是两个不同的问题。 –
第一个。等等,它们释放后立即清除它?我遇到的问题是它向上移动了多个步骤。 – user1210233
谁可以解释downvote?我想了解这里遵循的规范。 – user1210233