2012-02-01 1 views
3

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

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

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

ответ

2

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

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

+0

Ах, ладно, это имеет смысл. Думаю, я думал, что эта проблема была бы довольно распространенной, поэтому, возможно, уже было предоставленное решение. Но это не проблема, чтобы отслеживать его вручную. еще раз спасибо –