python - 获取 Pygame 键盘输入并检查它是否为数字

标签 python python-3.x pygame

我正在尝试使用 Pygame 使用此命令获取键盘输入:

if event.type == pg.KEYDOWN:
    # ADD KEYBOARD EVENTS
    keys = pg.key.get_pressed()

我想检查按下的按钮是否代表一个数字,我已经知道如何使用 try/except 命令检查一个字符串是否代表一个数字,但是,在我的代码中 keys 不是一个字符串,它是一个巨大的元组——我不知道如何以有效的方式获得它,因为每次我在互联网上查看如何获取键盘输入时,它们都需要等同于 keyspygame.pygame.K_LEFT 之类的东西,我不想对每个数字以及数字键盘(右侧)中的每个数字都这样做。

是否有一种有效的方法来确定用户是否点击了数字?谢谢!

最佳答案

pygame.key.get_pressed()返回包含所有键盘按钮状态的列表。这不是为了获取键盘事件的键。按下的键可以从 pygame.event.Eventkey 属性中获得。对象:

if event.type == pg.KEYDOWN:
    if event.key == pg.K_a:
        # [...] 

unicode 包含一个完整翻译字符的字符串:

if event.type == pg.KEYDOWN:
    if event.unicode == 'a':
        # [...] 

另见 pygame.key .

关于python - 获取 Pygame 键盘输入并检查它是否为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64124050/

相关文章:

mysql - 在 Python 中使用 mysql.connector 执行 MySQL 触发器,该触发器计算值并将其插入到现有表中新创建的列中

python - 计数和突出显示的问题

Python re.findall 仅返回第一个字符

python - Pygame按键问题

python - 如何使用 XML 存储和读取字节字符串(PyGame 图像)?我收到 ValueError 或 TypeError (无法序列化)。

python - 创建三个类而不是两个 - keras 库

python - 如何同时运行多个python命令?

python - Unicode编码错误: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)

python - 改造蛇需要关于如何使蛇更长并与更长的蛇一起移动的想法

python - Pandas - 如果列较大且不为空则生成值