Вам нужно отрисовывать объект в основном цикле While. И перед этим закрашивать экран.
И хорошо бы, если в будущий раз вы помещали код, как код, а не как текст, чтобы сохранялись отступы и имелась подсветка синтаксиса. Так сложно воспринимать ваш код.
в меню над текстовым полем 8 пункт с такими знаками: > - выбираете пайтон
Я убрал всё лишнее и оставил работающий код, для удобства восприятия
Клавиши управления заменил на WASD
import pygame
import sys
x = 50
y = 50
speed = 5
run = True
clock = pygame.time.Clock()
pygame.init()
win = pygame.display.set_mode((500, 500))
image = pygame.image.load('img.png').convert_alpha()
rect = image.get_rect()
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
key = pygame.key.get_pressed()
if key[pygame.K_a]:
x += -speed
if key[pygame.K_d]:
x += speed
if key[pygame.K_w]:
y += -speed
if key[pygame.K_s]:
y += speed
win.fill('white')
rect.x = x
rect.y = y
win.blit(image, rect)
pygame.display.update()
clock.tick(30)