我编写了一个简单的程序来测试对按下的 Shift 键的检测,我认为它应该可以工作。主要问题似乎是 KMOD_SHIFT 部分。我使用 pygame 搜索了移位检测,并且测试 pygame.key.get_mods() & KMOD_SHIFT
是人们说要使用的,并且也在几个代码示例中。但是,在我的代码中,我收到一条警告,指出 KMOD_SHIFT 是未解析的引用,当我尝试运行代码时,只要按任意键,就会收到错误:“名称 KMOD_SHIFT 未定义”。
Pygame 不应该定义它吗?在其他人使用这个的代码示例中,他们似乎和我一样使用它。我在这里做错了什么?
仍然是一个主要的 Python 新手 - 感谢您的指导。
#! /usr/bin/python3
import pygame
pygame.init()
screen_width, screen_height = 800, 600
screen_color = [128, 128, 128]
game_display = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('Coloriffic')
clock = pygame.time.Clock()
my_font = pygame.font.SysFont("monospace", 45)
crashed = False
shift_label = my_font.render("shift is NOT pressed", 1, (0, 0, 0))
while not crashed:
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
if event.type == pygame.KEYDOWN:
if pygame.key.get_mods() & KMOD_SHIFT: # the problem line
shift_label = my_font.render("shift is pressed", 1, (0, 0, 0))
else:
shift_label = my_font.render("shift is NOT pressed", 1, (0, 0, 0))
game_display.fill(screen_color)
game_display.blit(shift_label, (100, 100))
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
最佳答案
没关系,如果我使用pygame.KMOD_SHIFT
,似乎一切正常。我不知道为什么其他人不必把“pygame”。在前面,也许他们导入 Pygame 的方式与我不同。
误报,抱歉。
关于python - 为什么 Pygame 的 KMOD_SHIFT 未解析并使我的代码崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036463/