【发布时间】: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'