python - 为什么 Pygame 的 KMOD_SHIFT 未解析并使我的代码崩溃?

标签 python pygame unresolved-external

我编写了一个简单的程序来测试对按下的 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/

相关文章:

python - 如何在 Python 中替换字符串中的无效 unicode 字符?

python - 使用 Pyinstaller 创建的可执行文件无法打开图像

python - 如何深度复制 pygame Sprite 组?

c++ - 继承、纯虚函数和非内联成员函数定义

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

python - 使用列表理解加入许多列表

python - 如何在 AppFog(WSGI Python 应用程序)中使用 Apache 提供静态内容

python - Pygame在while true循环中显示图像内存问题

c++ - 什么是 undefined reference / Unresolved external symbol 错误,如何解决?

python - Visual Studio 中的一个项目有多个团队 - 不好的做法?