在Pygame中获得键盘输入的更简单方法?

库克鲁斯

在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"

有什么方法可以使用函数来帮我吗?

Narpar1217

如果每个键都需要采取完全不同的操作,那么实际上没有更好的方法。如果多个键导致相似的动作,例如单个函数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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用键盘输入的简单方法?

来自分类Dev

Pygame 中的键盘输入不起作用

来自分类Dev

有没有更简单的方法让键盘输入返回一个字符(SFML)?

来自分类Dev

在python中从键盘输入

来自分类Dev

Android Lollipop无法获得键盘输入

来自分类Dev

键盘输入未获得价值

来自分类Dev

C中的连续键盘输入

来自分类Dev

在C#中模拟键盘输入

来自分类Dev

在EditText中阻止物理键盘输入

来自分类Dev

如何禁用DateTimePicker中的键盘输入?

来自分类Dev

GLUT中的流体键盘输入?

来自分类Dev

在Linux中读取键盘输入

来自分类Dev

无法从R中的键盘输入数据

来自分类Dev

在Go中获得机器epsilon的最简单方法

来自分类Dev

在gscatter中获得更多明智颜色的简单方法

来自分类Dev

pygame:问题源自使用键盘输入的update()函数

来自分类Dev

在键盘输入时将文本插入pygame

来自分类Dev

使用简单的UIToolar进行键盘输入的布局约束错误

来自分类Dev

如何在SpriteKit游戏中获得键盘输入?

来自分类Dev

kile无法获得键盘输入,请响应Alt + F

来自分类Dev

openCV waitKey() 无法获得正确的键盘输入

来自分类Dev

在通用组件中呈现输入组件的简单方法

来自分类Dev

OpenGL键盘输入

来自分类Dev

停止键盘输入?

来自分类Dev

键盘输入暂停

来自分类Dev

在将键盘输入到编辑框中之前,如何截取键盘输入?

来自分类Dev

在React中禁用链接的更简单方法?

来自分类Dev

在PowerShell中解析“查询用户”的更简单方法

来自分类Dev

在TypeScript中检查文字对象类型的更简单方法