在Pygame中获取键盘输入是否比指定每个按键更简单?例如,
if event.key == pygame.K_a:
command = command + "a"
elif event.key == pygame.K_b:
command = command + "b"
elif event.key == pygame.K_c:
command = command + "c"
有什么方法可以使用函数来帮我吗?
如果每个键都需要采取完全不同的操作,那么实际上没有更好的方法。如果多个键导致相似的动作,例如单个函数f
可以将键作为参数,则可以使用如下in
表达式:
if event.key in (pygame.K_a, pygame.K_b, pygame.K_c):
f(event.key)
一个in
表达式的计算结果为True
,如果有什么左侧被包含在右侧什么。因此,使用该代码,如果按下的键是“ a”,“ b”或“ c”,f
则将以该键作为参数来调用该函数。
举一个实际的例子,假设您想使用“ Esc”或“ q”键退出程序。您可以这样完成:
if event.key in (pygame.K_ESCAPE, pygame.K_q):
pygame.quit()
上面的代码实际上与以下代码相同:
if event.key == pygame.K_ESCAPE:
pygame.quit()
elif event.key == pygame.K_q:
pygame.quit()
从注释开始,command
是一个串联的字符串。如果说您想添加按到的任何键az,则command
可以执行以下操作:
if event.key in range(pygame.K_a, pygame.K_z + 1):
command += event.unicode
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句