Я пытаюсь создать pygame для моего com-финала, но мой учитель не очень хорошо объяснил, как работает pygame.Моя проблема в том, что мне нужно, чтобы мой персонаж, созданный мной собственный спрайт, двигался плавно, когда удерживается любая из 4 клавиш со стрелками.До сих пор все, что я мог сделать, это заставить его двигаться при каждом отдельном нажатии клавиши, и я понятия не имею, как это исправить.
Я не уверен, является ли мой код наиболее эффективным, но, в сущности, в зависимости от того, какую клавишу вы нажимаете, меняются не только координаты X и Y, но и изображение png, направленное в правильном направлении.Это все ничья с использованием блиц.
import pygame
pygame.init()
def redraw_game_window(texture):
screen = pygame.display.set_mode(size)
background_image = pygame.image.load("lava.jpg").convert()
background_image = pygame.transform.scale(background_image, (size))
screen.blit(background_image, [0, 0])
texture= pygame.transform.scale(texture, (65,64))
texture=texture.convert_alpha()
screen.blit(texture,(EarlX,EarlY))
size=1200,600
EarlWidth=65
EarlLength=64
texture = pygame.image.load("UpFacingEarl.png")
EarlX=500
EarlY=150
speed=50
inPlay= True
while inPlay:
redraw_game_window(texture)
pygame.time.delay(20)
keys = pygame.key.get_pressed()
if keys[pygame.K_ESCAPE]:
inPlay = False
if keys[pygame.K_LEFT]:
texture = pygame.image.load("LeftFacingEarl.png")
EarlX-=speed
if keys[pygame.K_RIGHT]:
texture = pygame.image.load("RightFacingEarl.png")
EarlX+=speed
if keys[pygame.K_UP]:
texture = pygame.image.load("UpFacingEarl.png")
EarlY-=speed
if keys[pygame.K_DOWN]:
texture = pygame.image.load("DownFacingEarl.png")
EarlY+=speed
pygame.display.flip()
Буду очень признателен за любую помощь в улучшении моего кода, я знаю, что я не включаю png, но там я мало что могу сделать.