Подставляя это: screen.blit(cowboy, screen_center)
, вы говорите, что это изображение появится в центре экрана. Вы хотите, чтобы он отображался на (cowboy_x, cowboy_y)
, так как это переменные позиционирования, которые вы определили. Вот рабочая версия вашего кода:
import pygame
pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption("Move the Cowboy")
cowboy = pygame.image.load('images/cowboy.bmp')
cowboy = pygame.transform.scale(cowboy, (50, 50))
cowboy_x, cowboy_y = 0, 0
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
screen.fill((240,237,207))
screen.blit(cowboy, (cowboy_x, cowboy_y))
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
cowboy_x -= 1
elif keys[pygame.K_RIGHT]:
cowboy_x += 1
elif keys[pygame.K_UP]:
cowboy_y -= 1
elif keys[pygame.K_DOWN]:
cowboy_y += 1
pygame.display.update()
pygame.quit()
Я позволил себе вычеркнуть некоторые совершенно бесполезные строки кода и принести то, что вам не нужно было повторять. l oop, чтобы сэкономить место обработки.