почему в данном коде не отображается спрайт
почему в данном коде не отображается спрайт
import pygame
FPS = 30
pygame.init()
sc = pygame.display.set_mode((1200, 1200))
clock = pygame.time.Clock()
flag = 0
def cat(massive):
x = 600
y = 600
walkOfCat = ['walk1.png',
'walk2.png',
'walk3.png',
'walk4.png',
'walk5.png',
'walk6.png',
'walk7.png',
'walk8.png']
cat_surf = pygame.image.load(walkOfCat[massive])
cat_rect = cat_surf.get_rect(bottomright=(x, y))
sc.blit(cat_surf, cat_rect)
pygame.display.update()
# главный цикл
while True:
sc.fill((0,0,0))
pygame.display.update()
# цикл обработки событий
for i in pygame.event.get():
if i.type == pygame.QUIT:
exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
cat(flag)
flag += 1
if flag == 7:
flag = 0
elif keys[pygame.K_LEFT]:
cat(flag)
flag -= 1
if flag == 0:
flag = 7
else:
flag = 0
clock.tick(FPS)
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
pygame.display.update() надо ставить в самом конце цикла, а не в начале
import pygame
FPS = 30
pygame.init()
sc = pygame.display.set_mode((1200, 1200))
clock = pygame.time.Clock()
flag = 0
def cat(massive):
x = 600
y = 600
walkOfCat = ['walk1.png',
'walk2.png',
'walk3.png',
'walk4.png',
'walk5.png',
'walk6.png',
'walk7.png',
'walk8.png']
cat_surf = pygame.image.load(walkOfCat[massive])
cat_rect = cat_surf.get_rect(bottomright=(x, y))
sc.blit(cat_surf, cat_rect)
pygame.display.update()
# главный цикл
while True:
sc.fill((0,0,0))
cat(flag)
# цикл обработки событий
for i in pygame.event.get():
if i.type == pygame.QUIT:
exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
flag += 1
if flag == 7:
flag = 0
elif keys[pygame.K_LEFT]:
flag -= 1
if flag == 0:
flag = 7
else:
flag = 0
pygame.display.update()
clock.tick(FPS)