Рис. 13.1.
Пришелец, который будет использоваться для создания флота
Создание класса Alien
Теперь можно написать класс
Alien
и сохранить его в файле
alien .py
:
270
Глава 13 • Осторожно, пришельцы!
alien.py
import pygame
from pygame.sprite import Sprite
class Alien(Sprite):
"""Класс, представляющий одного пришельца."""
def __init__(self, ai_game):
"""Инициализирует пришельца и задает его начальную позицию."""
super().__init__()
self.screen = ai_game.screen
# Загрузка изображения пришельца и назначение атрибута rect.
self.image = pygame.image.load('images/alien.bmp')
self.rect = self.image.get_rect()
# Каждый новый пришелец появляется в левом верхнем углу экрана.
❶
self.rect.x = self.rect.width
self.rect.y = self.rect.height
# Сохранение точной горизонтальной позиции пришельца.
❷
self.x = float(self.rect.x)
В основном этот класс похож на класс
Ship
(если не считать размещения при-
шельца). Изначально каждый пришелец размещается в левом верхнем углу экрана,
при этом слева от него добавляется интервал, равный ширине пришельца, а над
ним — интервал, равный высоте
. Нас в первую очередь интересует горизонталь-
ная скорость пришельца, поэтому горизонтальная позиция каждого пришельца
отслеживается точно
.
Классу
Alien
не нужен метод для вывода на экран; вместо этого мы воспользуемся
методом групп Pygame, который автоматически рисует все элементы группы на
экране.
Создание экземпляра Alien
Начнем с создания экземпляра
Alien
, чтобы первый пришелец появился на экране.
Так как эта операция входит в подготовительную часть, код для текущего экземп-
ляра будет добавлен в конец метода
__init__()
в
AlienInvasion
. Позднее будет
создан целый флот вторжения, что потребует определенной работы, поэтому мы
определим новый вспомогательный метод с именем
_create_fleet()
.
Порядок следования методов в классе может быть любым — важно лишь, чтобы
в этом порядке существовала некая закономерность. Я размещу
_create_fleet()
не-
посредственно перед методом
_update_screen()
, но с таким же успехом его можно
разместить в любой точке
AlienInvasion
. Начнем с импортирования класса
Alien
.
Обновленные команды импортирования в файле
alien_invasion .py
:
Создание пришельца
Достарыңызбен бөлісу: |