зажатие клавиш на PyGame
При реализации настройки управления столкнулся с проблемой - как реализовать зажатие клавиш.
Из статей понял, что надо работать с KEYDOWN и KEYUP, но во множестве попыток использования их (пытался как с использованием while так и сложным спагетти из if и переменных) программа либо зависала с переходом в "не отвечает", либо просто не реагировала на нажатия клавиш.
В коде использую матрицу key_act, где каждая строка является [ссылка на клавишу, ссылка на функцию, зажатая/не зажатая]. Пример: [pygame.K_w, f, False]. Собственно из-за этой матрицы появляется много сложностей.
Как можно реализовать зажатие клавиш в этом коде, сохранив возможность настройки клавиш?
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # выход
pygame.quit()
exit ()
for i in key_act:
if i[2] == False: #одинарное нажатие
if event.type == pygame.KEYDOWN:
if event.key == i[0]:
i[1] ()
else: #зажатие
pass