Вот код
import pygame
import sys
from settings_of_game import Settings
from ship import Ship
class AlienInvasion:
""""Класс для управления ресурсами и поведением игры"""
def __init__(self):
""""Инициализация игры и создание игровых ресурсов"""
pygame.init()
self.settings_of_game = Settings()
self.screen = pygame.display.set_mode((self.settings_of_game.screen_width, self.settings_of_game.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_of_game.bg_color)
self.ship.blitme()
#Отображение последнего прорисованного экрана.
pygame.display.flip()
if __name__ == '__main__':
#Создание экземпляра и запуск игры
ai = AlienInvasion()
ai.run_game()
Вот модуль ship
import pygame
class Ship():
"""Класс для управления кораблем"""
def __init__(self, ai_game):
"""Инициализирует корабль и задает начальную позицию"""
self.screen = ai_game.screen
self.screen_rect = ai_game.screen.get_rect()
#Загружам изображение корабля
self.image = pygame.image.load('images/ship.png')
self.rect = self.image.get_rect()
#Каждый новый корабль появлеяется у нижнего края экрана
self.rect.midbottom = self.screen_rect.midbottom
def blitme(self):
"""Рисует корабль в текущей позиции"""
self.screen.blit(self.image, self.rect)
Вот ошибка
Traceback (most recent call last):
File "D:\pythonProject\main.py", line 38, in <module>
ai = AlienInvasion()
File "D:\pythonProject\main.py", line 17, in __init__
self.ship = Ship(screen)
NameError: name 'screen' is not defined