【问题标题】:Not detecting key press in pygame在pygame中没有检测到按键
【发布时间】:2017-11-05 12:58:03
【问题描述】:

我目前正在开发一款游戏,我希望让玩家可以选择四个角色来玩。这是我目前的代码:

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”键,它不会将变量选择更改为预期的值。

希望我已经充分解释了我的问题。

【问题讨论】:

  • 尝试打印出 if 语句的评估。看看他们是否像他们应该的那样返回真实。另外,尝试打印出keys
  • @ShadowMitia 我稍后在程序中再次使用了 pygame.key.get_pressed() 但更改它对问题没有影响。
  • 您在拨打get_pressed()之前是否尝试过拨打pygame.event.pump()
  • @MichealO'Dwyer 打印出 if 语句总是返回 '0'

标签: python pygame


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多