У меня ошибка, когда я запускаю она не видит screen, хотя screen есть

вот мой код

import sys
import pygame
import settings
import ship

from settings import Settings
from ship import Ship
class AlienInvasion:
    pygame.init()
    '''Класс для управления ресурсами и поведением игры'''
    def __init__(self):
        #Иницыализирует игру и создаёт игровые ресурсы
        pygame.init()
        self.settings = Settings()

        self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))
        
        pygame.display.set_caption('Alien Invasion')

        self.ship = Ship(screen)
    def run_game(self):
        while True:
            #Отслеживание событий клавиатуры и мыши
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
            # При каждом проходе цикла перерисовывается экран
            self.screen.fill(self.settings.bg_color)
            self.ship.blitme()
            # Отображение последнего прорисованного экрана
            pygame.display.flip()


if __name__ == '__main__':
    #создание экземпляра и запуск игры
    ai = AlienInvasion()
    ai.run_game()

и вот ошибка

File "C:\Users\KLONDIKE\OneDrive\Рабочий стол\game py\alien_invasion.py", line 36, in <module>
    ai = AlienInvasion()
         ^^^^^^^^^^^^^^^
  File "C:\Users\KLONDIKE\OneDrive\Рабочий стол\game py\alien_invasion.py", line 20, in __init__
    self.ship = Ship(screen)
                     ^^^^^^
NameError: name 'screen' is not defined

я старался делать все, что пришло мне в голову. Можете помочь кому не лень :)


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