如何实现良好的键盘处理?在任何语言中,当我编写键盘交互程序(例如俄罗斯方块游戏)时,最终都会有一些类似于以下代码的内容:
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)
(缩写). 我不喜欢这个方法,因为这需要放在我的主循环中,并且它会影响程序的所有部分。这也使得不可能有一个用户配置屏幕,让他们可以更改按键映射到哪个操作。是否有好的模式可以使用某种形式的函数回调来完成?