Создание ряда

We use cookies. Read the Privacy and Cookie Policy

Чтобы создать один ряд пришельцев, сначала создадим в alien_invasion.py пустую группу с именем aliens для хранения всех пришельцев, а затем вызовем функцию в game_functions.py для создания флота:

alien_invasion.py

import pygame

from pygame.sprite import Group

from settings import Settings

from ship import Ship

import game_functions as gf

def run_game():

...

. .# Создание корабля, группы пуль и группы пришельцев.

ship = Ship(ai_settings, screen)

bullets = Group()

(1) . .aliens = Group()

. .

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

(2) . .gf.create_fleet(ai_settings, screen, aliens)

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

while True:

...

(3) . . . .gf.update_screen(ai_settings, screen, ship, aliens, bullets)

run_game()

Так как пришельцы уже не создаются напрямую в alien_invasion.py, импортировать класс Alien в этот файл не обязательно.

Создайте пустую группу для хранения всех пришельцев в игре (1) . Затем создайте новую функцию create_fleet() (2), которую мы вскоре вызовем, и передайте ей ai_settings, объект screen и пустую группу aliens. Затем измените вызов update_screen(), чтобы предоставить функции доступ к группе пришельцев (3).

Также необходимо внести изменения в update_screen():

game_functions.py

def update_screen(ai_settings, screen, ship, aliens, bullets):

...

ship.blitme()

. .aliens.draw(screen)

. . . . . .

# Отображение последнего прорисованного экрана.

pygame.display.flip()

Когда вы вызываете метод draw() для группы, Pygame автоматически выводит каждый элемент группы в позиции, определяемой его атрибутом rect. В данном случае вызов aliens.draw(screen) рисует каждого пришельца в группе на экране.