Python 在pygame中未检测到按键

Python 在pygame中未检测到按键,python,pygame,Python,Pygame,我目前正在做一个游戏,我希望给玩家四个角色的选择。以下是我当前执行此操作的代码: running = 1 charactersChoice = ['char.png', 'char2.png', 'char3.png', 'char4.png'] choice = '' while choice == '': screen.fill((47, 79, 79)) screen.blit(pygame.image.load(charactersChoice[0]), (100,10

我目前正在做一个游戏,我希望给玩家四个角色的选择。以下是我当前执行此操作的代码:

running = 1
charactersChoice = ['char.png', 'char2.png', 'char3.png', 'char4.png']
choice = ''

while choice == '':
    screen.fill((47, 79, 79))
    screen.blit(pygame.image.load(charactersChoice[0]), (100,100))
    screen.blit(pygame.image.load(charactersChoice[1]), (700,100))
    screen.blit(pygame.image.load(charactersChoice[2]), (100,600))
    screen.blit(pygame.image.load(charactersChoice[3]), (700,600))

    keys = pygame.key.get_pressed()

    #Choose character

    if keys[pygame.K_1]:
        choice = charactersChoice[0]

    if keys[pygame.K_2]:
        choice = charactersChoice[1]

    if keys[pygame.K_3]:
        choice = charactersChoice[2]

    if keys[pygame.K_4]:
        choice = charactersChoice[3]


    pygame.display.flip()


while running == 1:
#rest of code for game here
如您所见,我将四个不同的角色配置文件显示在屏幕上,然后检查玩家是否按了1-4键来选择他们的选项。选择他们的选项后,它应该移到主循环上。目前,如果我在代码运行时按“1”键,它不会将变量选择更改为预期值


希望我已经很好地解释了我的问题。

在使用
pygame.key.get_pressed()
之前,您必须至少调用
pygame.event.pump()
一次,以便pygame可以检查按下了哪些键。

可能的重复项请尝试打印if语句的求值。看看他们是否像他们应该的那样回归真实。另外,请尝试打印
@ShadowMitia我在程序中使用过pygame.key.get_pressed(),但更改此项不会对问题产生影响。在调用
get_pressed()
之前,您是否尝试过调用
pygame.event.pump()
?@MichealO'Dwyer打印if语句始终返回“0”