Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我想在按住键的同时移动屏幕上的图像。我怎样才能得到它?_Python 3.x_Pygame - Fatal编程技术网

Python 3.x 我想在按住键的同时移动屏幕上的图像。我怎样才能得到它?

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

我这样做是想它会起作用,但它没有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
            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再次将其关闭