Pygame Смешивание повторных нажатий клавиш и нажатий клавиш Singular - PullRequest
3 голосов
/ 01 февраля 2012

В Pygame вы можете установить повторное (удерживаемое) обнаружение клавиш с помощью pygame.key.set_repeat ().

В моем случае я хочу смешать клавиши, которые можно удерживать, и клавиши, которые будут распознаваться только один раз. В частности, я хочу иметь возможность двигаться (удерживая нажатой клавишу (и)), но я хочу требовать одного нажатия клавиши на одну пожарную ракету.

Чтобы быть более понятным, я хочу распознавать нажатие удерживаемых клавиш только для клавиш перемещения (вверх, вниз, влево, вправо и т. Д.). Другие клавиши, удерживаемые в нажатом положении, должны распознаваться только один раз.

1 Ответ

2 голосов
/ 01 февраля 2012

Вы можете сохранить отслеживание состояния для клавиш, которые вы хотите распознать только один раз за нажатие - установите флаг True, когда вы видите событие KEYDOWN, а затем снова установите его на False, когда вы увидите соответствующий KEYUP.Затем реагируйте на событие KEYDOWN только в том случае, если флаг еще не был True.

. Другой вариант заключается в том, что вы можете сохранить трекер состояния для клавиш, которые do хотите использовать.повторяйте и просто опрашивайте это состояние очень часто (например, каждые X миллисекунд, посмотрите, помечена ли клавиша как «вниз» и, если да, сделайте все, что нужно для этого нажатия).

...