Книга «Изучаем Python»


Рис. 13.1. Пришелец, который будет использоваться для создания флота 258



Pdf көрінісі
бет134/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   130   131   132   133   134   135   136   137   ...   238
Рис. 13.1. Пришелец, который будет использоваться для создания флота


258    Глава 13  •  Осторожно, пришельцы!

собственное изображение пришельца или использовать изображение на рис. 13.1, 

доступное в ресурсах книги по адресу https://www.nostarch.com/pythoncrashcourse/

Это изображение имеет серый фон, совпадающий с цветом фона экрана. Не за-

будьте сохранить выбранный файл в каталоге 

images


.

Создание класса Alien

Теперь можно написать класс 

Alien


:

alien.py

import pygame

from pygame.sprite import Sprite

class Alien(Sprite):

    """Класс, представляющий одного пришельца."""

    def __init__(self, ai_settings, screen):

        """Инициализирует пришельца и задает его начальную позицию."""

        super(Alien, self).__init__()

        self.screen = screen

        self.ai_settings = ai_settings

        # Загрузка изображения пришельца и назначение атрибута 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)

    def blitme(self):

        """Выводит пришельца в текущем положении."""

        self.screen.blit(self.image, self.rect)

В основном этот класс похож на класс 

Ship


 (если не считать размещения пришель-

ца). Изначально каждый пришелец размещается в левом верхнем углу экрана, при 

этом слева от него добавляется интервал, равный ширине пришельца, а над ним — 

интервал, равный высоте .

Создание экземпляра Alien

Создадим экземпляр 

Alien

 в 


alien_invasion .py

:

alien_invasion.py

...

from ship import Ship



from alien import Alien

import game_functions as gf




Создание пришельца    259

def run_game():

...

    # Создание пришельца.



    alien = Alien(ai_settings, screen)

# Запуск основного цикла игры.

while True:

gf.check_events(ai_settings, screen, ship, bullets)

ship.update()

gf.update_bullets(bullets)

        gf.update_screen(ai_settings, screen, ship, alien, bullets)

run_game()

Программа импортирует новый класс 

Alien


 и создает экземпляр 

Alien


 непосред-

ственно перед входом в основной цикл 

while

. Так как позиция пришельца еще 



не успела измениться, ничего нового в цикле не добавляется; изменения вносятся 

только в вызов 

update_screen()

, которому передается экземпляр 

alien

.

Отображение пришельца на экране





Достарыңызбен бөлісу:
1   ...   130   131   132   133   134   135   136   137   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет