Хочу отрисовать спрайт в игре платформер у меня вылезает ошибка( NameError: name 'spr' is not defined)

#импортируем библиотеку
import pygame
#инцилизируем
pygame.init()
#окно название и размер
df = pygame.display.set_mode((600, 600))
pygame.display.set_caption("my game")
#игрок и фон
sx = 600
sy = 600
bg = pygame.image.load("D:\\игра_3\\unknown2.jpg")
pygame.draw.rect(df, (0,0,0), [230, 400, 140, 20])
pygame.draw.rect(df,(0,0,0),[50,250, 140, 20])
pygame.draw.rect(df, (0,0,0),[300,150, 140, 20])
ry = (150, 266)
#перменые
x = 70
y = 540
w = 40 
h = 60


class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.a = pygame.draw.rect(df,(0,255,0), (x, y, w, h))

    
    
player = Player()
x = 70
y = 540
w = 40 
h = 60
speed = 10
jumps = 10
jump = False
left = False
right = False
def __init__(self):
    super().__init__()
    block_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
    for block in block_hit_list:
        if self.x > 0:
            self.rect.right = block.rect.left
        elif self.x < 0:
            self.rect.left = block.rect.right

    self.rect.y += self.y
    
    block_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
    for block in block_hit_list:
        if self.y > 0:
            self.rect.bottom = block.rect.top
        elif self.y < 0:
            self.rect.top = block.rect.bottom

            self.y = 0          

def jump(self):
    self.rect.y += 10
    platform_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
    self.rect.y -= 10
    if len(platform_hit_list) > 0 or self.rect.bottom >= 600:
            self.y = -16


class Platform(pygame.sprite.Sprite):
    def __init__(self, w, h):
        super().__init__()
        self.g = pygame.image.load("D:\\игра_3\\platform.png")
        self.g_r = self.image.get_rect()
class Level(object):
    def __init__(self):
        self.platform_list = pygame.sprite.Group()
        self.player = player
        

#экран  
def draww(self, df):
    df.blit(bg, (0, 0))
    
    self.platform_list.draw(df)

class Level_01(Level):
    def __init__(self):
        Level.__init__(self)

        level = [
            [210, 32, 500, 500],
            [210, 32, 200, 400],
            [210, 32, 600, 300],
                ]
        for platform in level:  
            block = Platform(platform[0], platform[1])
            block.rect.x = platform[2]
            block.rect.y = platform[3]
            block.player = self.player
            self.platform_list.add(block)
def main():
    pygame.init()
    level_list = [[
        [210, 32, 500, 500],
        [210, 32, 200, 400],
        [210, 32, 600, 300],
                ]]
    level_list.append(Level_01(player))
    current_level_no = 0
    current_level = level_list[current_level_no]
    spr = pygame.sprite.Group()
    player.level = current_level
    player.rect.x = 340
    player.rect.y = 600 - player.rect.h
    spr.add(player)

        
run = True  
while run:
    pygame.time.delay(30)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False


#управлнее игроком и прыжки
    keys = pygame.key.get_pressed()
    if keys[pygame.K_a] and x > 3:
        x -= speed
        left = True
        right = False
    elif keys[pygame.K_d] and x < 600 - w -3:
        x += speed
        right = True
        left = False
    else: 
        left = False
        right = False
    if not (jump):
        if keys[pygame.K_SPACE]:
            jump = True
    else:
        if jumps >= -10:
            if jumps < 0:
                y += (jumps ** 2) / 2
            else:
                y -=(jumps ** 2) / 2
            jumps -=1
        else:
            jump = False
            jumps = 10
#функция
    spr.update()
    current_level.update()
    spr.draw(df)
    current_level.draw(df)
    pygame.display.flip()
    pygame.display.update()     
pygame.quit()

Ответы (0 шт):