Привет, я только начал с Pygame, хотя я немного использовал ActionScript. Я все еще новичок в кодировании в целом. Я пытаюсь заставить персонажа двигаться. Моя проблема в том, что когда я запускаю программу, она сразу перестает отвечать, поэтому я даже не знаю, в чем проблема. Вот мой код.Pygame: Почему мой код движения не работает?
import pygame, sys
from pygame.locals import*
pygame.init()
DISPLAYSURF = pygame.display.set_mode((780, 500), 0, 32)
FPS = 30
fpsClock = pygame.time.Clock()
sprite = pygame.image.load('CharacterFront.png')
spritex = 50
spritey = 50
charLeft = False
charRight = False
charUp = False
charDown = False
while True:
DISPLAYSURF.blit(sprite,(spritex,spritey))
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if (event.key == K_LEFT):
charLeft = True
elif (event.key == K_d):
charRight = True
elif (event.key == K_w):
charUp = True
elif (event.key == K_s):
charDown = True
if event.type == KEYUP:
if (event.key == K_LEFT):
charLeft = False
elif (event.key == K_d):
charRight = False
elif (event.key == K_w):
charUp = False
elif (event.key == K_s):
charDown = False
while charLeft == True:
spritex -= 10
sprite=pygame.image.load('CharacterLeft.png')
while charRight == True:
spritex += 10
sprite=pygame.image.load('CharacterRight.png')
while charUp == True:
spritey -= 10
sprite=pygame.image.load('CharacterBack.png')
while charDown == True:
spritey += 10
sprite=pygame.image.load('CharacterFront.png')
pygame.display.update()
fpsClock.tick(FPS)
Я уже пробовал много различных способов сделать это, но ближе всего я был вызван персонаж, чтобы вставить снова и снова, и я должен был спам направления на самом деле двигаться более чем на 10 пикселей. Любые ответы будут оценены.
пожалуйста исправить отступы, ваш код не работает – TankorSmash