Ubuntu PythonPyGame打印击键垃圾邮件输出
我一直在关注一个问题 上的Pygame教程于2019年制作,因此可能已经过时。 它应该检测到箭头键并打印它,但它会不断垃圾邮件打印右箭头或左箭头,并在我按下任何箭头键时释放按键。 代码是否过期或我的代码有错误? 在它开始垃圾邮件之前,它在pycharm上说“ALSA lib pcm.c:8526:(snd_pcm_recover)underrun”是一个错误。 它适用于所有其他部件 视频链接,如果您需要() 我在pycharm 3.8.5上使用pygame 2.0.0,如果在pycharm和python上相同的话。 Linux ubuntu 20.04.1Ubuntu PythonPyGame打印击键垃圾邮件输出,ubuntu,pygame,pycharm,python-3.8,Ubuntu,Pygame,Pycharm,Python 3.8,我一直在关注一个问题 上的Pygame教程于2019年制作,因此可能已经过时。 它应该检测到箭头键并打印它,但它会不断垃圾邮件打印右箭头或左箭头,并在我按下任何箭头键时释放按键。 代码是否过期或我的代码有错误? 在它开始垃圾邮件之前,它在pycharm上说“ALSA lib pcm.c:8526:(snd_pcm_recover)underrun”是一个错误。 它适用于所有其他部件 视频链接,如果您需要() 我在pycharm 3.8.5上使用pygame 2.0.0,如果在pycharm和py
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
print("Left arrow")
if event.key == pygame.K_RIGHT:
print("Right arrow")
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
print("Keystroke released")
谢谢我真的不明白为什么它不起作用,我试着重写代码,没有错误,试着用我写的东西:
import pygame
pygame.init()
pygame.display.set_mode((700, 700))
running = True
# initializing main loop
while running:
# initializing event loop
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
print("Left arrow")
if event.key == pygame.K_RIGHT:
print("Right arrow")
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
print("Keystroke released")
# lines in order to close up the window properly
if event.type == pygame.QUIT:
running = False
pygame.quit()
希望它能为您工作,再见。您是否正在使用
pygame.key.set\u repeat(…)
来启用重复的按键事件?我检查了,但我没有使用pygame.key.set\u repeat(…)。它现在工作得很好。我只需要将“if event.type==pygame.QUIT:running=False”移动到循环的末尾。非常感谢!