我想用pygame一次按下多个键时执行一个动作,例如,当同时按下a和b时,我的程序会显示“ hi”。我尝试了pygame.KEYDOWN,但是找不到用这种方法检测多个输入的方法。当我使用pygame.key.get_pressed()时,我得到了很多打印语句,因为我只想要一个打印语句,只要按下键就不需要打印语句。有人可以帮我解决这个问题吗?
目前,我有以下内容:
keys = pygame.key.get_pressed() # checking pressed keys
if keys[pygame.K_r] and keys[pygame.K_l]:
print('hi')
elif keys[pygame.K_l]:
print('bye')
但是当我按r和l时,hi被打印了很多次,但是我只希望它打印一次。
答案 0 :(得分:0)
KEYDOWN
事件拥有一个键。要执行您想要的操作,可以将两种方法结合起来。
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
keys = pygame.key.get_pressed()
if event.key == pygame.K_r and keys[pygame.K_l]:
print("Hi")
elif event.key == pygame.K_l:
print('bye')
基本上,您可以从要同时按下的两个键之一中捕获事件,并检查是否也按下了另一个键。