什么是实现键盘处理的好方法?在我编写键盘交互程序(例如俄罗斯方块游戏)的任何语言中,我最终都会得到一些如下所示的代码:
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)
(缩短)。我不喜欢这样,因为它必须进入我的主循环,并且它与程序的所有部分都混淆了。这也使得不可能有一个用户配置屏幕,他们可以在其中更改哪些键映射到哪些操作。有没有使用某种形式的函数回调来做到这一点的好模式?