在 Pygame 中,当移动到游戏中的另一个位置时图像不会被删除 window

In Pygame, the image doesn't get erased when moved to another location on the game window

我一直在 Mac 上试用 Pygame 游戏库,当我尝试在游戏 window 周围移动图像时,出于某种原因,它不会被删除。

我试过的代码运行:

import pygame

pygame.init()

# Creates the screen.
screen = pygame.display.set_mode([800, 600])
pygame.display.set_caption("Space Invaders")
icon = pygame.image.load("ufo.png")
pygame.display.set_icon(icon)

# Player sprite.
playerImg = pygame.image.load("player.png")
playerX = 350
playerY = 500
playerX_change = 0

# Function to draw the player
def player(x, y):
  screen.blit(playerImg, (playerX, playerY))

# Game loop
running = True
while running:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            playerX_change = -0.1
            print("Left key is pressed!")
        if event.key == pygame.K_RIGHT:
            playerX_change = 0.1
            print("Right key is pressed!")

    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
            playerX_change = 0

playerX += playerX_change

我已经尝试在我的 PC 上 运行 类似的代码,并且它按预期工作。我不知道该怎么办。

每一帧都要清屏:

clock = pygame.time.Clock()

running = True
while running:
    clock.tick(100)

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    # update objects
    speed = 1
    keys = pygame.key.get_pressed()
    playerX += (keys[pygame.K_RIGHT] - keys[pygame.K_LEFT]) * speed

    # clear screen
    screen.fill(0)

    # draw scene
    player(playerX, playerY)

    # update display
    pygame.dispaly.flip()

典型的 PyGame 应用程序循环必须: