Python 3.x 我想在按住键的同时移动屏幕上的图像。我怎样才能得到它?
我这样做是想它会起作用,但它没有XD 每次单击仅移动图像一次 请帮帮我Python 3.x 我想在按住键的同时移动屏幕上的图像。我怎样才能得到它?,python-3.x,pygame,Python 3.x,Pygame,我这样做是想它会起作用,但它没有XD 每次单击仅移动图像一次 请帮帮我 for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() while event.type == pygame.KEYDOWN: right == K_RIGHT left == K_LEFT if right == 1
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
while event.type == pygame.KEYDOWN:
right == K_RIGHT
left == K_LEFT
if right == 1
posX += velocidad
elif lef == 1:
posX -= velocidad
总的来说,我认为您需要的是使用if语句检查
event.key
但是,您的代码存在多个问题(结构和语法)event.type
不会改变,因此在时使用没有意义(这将永远运行并使程序挂起)。我不确定您对==1
比较的目的是什么,因为K_RIGHT和K_LEFT是关键代码值的任意常量。更不用说right==K_right
是一个不起任何作用的表达式(你的意思是right=K_right
?),而且你的lef
有一个清晰的打字错误。我认为与您提供的结构最接近的工作代码(假设其他未显示的代码也可以工作)如下所示:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
right = K_RIGHT
left = K_LEFT
if event.key == right:
posX += velocidad
elif event.key == left:
posX -= velocidad
我想您应该使用pygame.key.get_pressed()
,如下所示
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pressed_keys = pygame.key.get_pressed()
if pressed_keys[K_RIGHT]:
posX += velocidad
if pressed_keys[K_LEFT]:
posX -= velocidad
event.type==pygame.KEYDOWN仅在第一次按下键时捕捉。
如果你想使用它,你可以切换一些属性,比如你的对象。moving\u right=True。然后使用keyup再次将其关闭