Я пытаюсь создать небольшую маленькую игру для себя, чтобы, среди прочего, практиковать ООП. Однако я заметил, что когда я нажимаю клавишу, она действует так, как будто я нажимал ее несколько раз. Теперь я знаю, что могу использовать функцию события (event.type == pygame.KEYDOWN), я хочу выяснить, что было не так в том, что я написал.
Я изучил этот маленький метод цикла, чтобы создатьзадержка между нажатиями клавиш, если, скажем, вы что-то снимали и тогда работали должным образом. Я сравнил его с предыдущим кодом, но не могу понять, где я ошибся.
inDelay = 0
#indent caused because it is in my mainloop
if inDelay > 0:
inDelay += 1
elif inDelay > 6:
inDelay = 0
#also main loop
if (keys[pygame.K_RIGHT] or keys[pygame.K_d]) and inDelay == 0:
if arrowS.x == 163:
arrowS.x = 413
elif arrowS.x == 413:
arrowS.x = 663
elif arrowS.x == 663:
arrowS.x = 163
inDelay = 1
Я могу нажать клавишу один раз, и моя стрелка переместится туда, куда я хочу, простохорошо, но я не получаю ответ, когда нажимаю второй раз. Я пробовал делать отступ inDelay = 1 под каждым движением, но это тоже не получается.