Pygame: 显示不更新

Pygame: display doesn't update

我遇到了显示由于某种原因没有更新的问题。我已经确认 x 上升,但由于某种原因显示器没有显示它。 代码:

import pygame


SIZE = (500, 500)
CENTER = (SIZE[0] / 2, SIZE[1] / 2)
FPS = 60
COLORS = {
    "white": (255, 255, 255),
    "red": (255, 0, 0),
    "green": (0, 255, 0),
    "blue": (0, 0, 255),
    "black": (0, 0, 0)
}
WIN = pygame.display.set_mode(SIZE)

pygame.display.set_caption("what da dog doing?")


def main():
    clock = pygame.time.Clock()
    run = True
    player = pygame.draw.rect(WIN, COLORS.get(
        "white"), (CENTER[0] - 400 / 2, CENTER[1] - 70 / 2, 400, 70),  border_radius=10)

    while run:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        player.x += 1
        pygame.display.update()

    pygame.quit()


if __name__ == "__main__":
    main()

感谢任何帮助。

你需要在主循环中放置应该更新的东西,你还需要用一些颜色填充屏幕(或者 blit 一个大到足以覆盖你需要的区域的图像)来绘制之前画的东西

def main():
    clock = pygame.time.Clock()
    run = True
    player = pygame.draw.rect(WIN, COLORS.get(
        "white"), (CENTER[0] - 400 / 2, CENTER[1] - 70 / 2, 400, 70),  border_radius=10)

    while run:
        clock.tick(FPS)

        WIN.fill((0, 0, 0))

        pygame.draw.rect(WIN, COLORS.get('white'), player, border_radius=10)
        player.x += 1

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False

        pygame.display.update()

    pygame.quit()