почему в данном коде не отображается спрайт

почему в данном коде не отображается спрайт

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)
→ Ссылка