Каков хороший способ реализации обработки клавиатуры? На любом языке, где я пишу интерактивную программу с клавиатурой (например, игру в тетрис), я получаю код, который выглядит примерно так:
for event in pygame.event.get():
if event.type == KEYDOWN:
if False: pass #make everything an elif
elif rotating: pass
elif event.key == K_q:
elif event.key == K_e:
elif event.key == K_LEFT:
curpiece.shift(-1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
elif event.key == K_RIGHT:
curpiece.shift(1, 0)
shadowpiece = curpiece.clone(); setupshadow(shadowpiece)
(сокращенно). Мне это не нравится, так как это должно выполняться в моем основном цикле, и это портит все части программы. Это также делает невозможным наличие экрана конфигурации пользователя, где они могут изменить, какая клавиша соответствует какому действию. Есть ли хороший шаблон для этого с использованием какой-либо формы обратных вызовов функций?