首页 > 解决方案 > 命令 K_UP 和 K_DOWN 在 Pygame 中不起作用

问题描述

我在我的 Pygame 程序中编写了以下代码:-

if (event.type == pygame.KEYDOWN):

        x = player_pos[0]
        y = player_pos[1]

        if (event.key == pygame.K_LEFT):
            x -= player_size
        elif (event.key == pygame.K_RIGHT):
            x += player_size
        elif (event.key == pygame.K_UP):
            y += player_size
        elif (event.key == pygame.K_DOWN):
            y -= player_size

        player_pos = [x,y]

但是,当我按下向上键时,对象会下降,当我按下向下键时,它会上升,反之亦然!谁能让我知道如何解决这个问题?谢谢您的帮助:)

标签: pythonpygame

解决方案


在 Pygame 坐标系中,左上角为 (0, 0)。从那里,x 坐标向右增加,y 坐标向下增加。因此,y 轴指向下方。您需要减少 y 坐标以向上移动并增加它以向下移动:

elif event.key == pygame.K_UP:
    y -= player_size
elif event.key == pygame.K_DOWN:
    y += player_size

推荐阅读