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



Pdf көрінісі
бет160/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   156   157   158   159   160   161   162   163   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

ПРИМЕЧАНИЕ
У вычислений в программировании есть одна замечательная особенность: не обязательно быть 
полностью уверенным в правильности формулы, когда вы ее пишете . Вы можете опробовать 
формулу на практике и посмотреть, что из этого получится . В худшем случае получится экран, 
до отказа забитый пришельцами, — или наоборот, пустой . В этом случае вы пересмотрите формулу 
на основании полученных результатов .


Построение флота
261
Создание ряда
Чтобы создать один ряд пришельцев, сначала создадим в 
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()
 
aliens = Group()
# Создание флота пришельцев.
 
gf.create_fleet(ai_settings, screen, aliens)
# Запуск основного цикла игры.
while True:
...
 
gf.update_screen(ai_settings, screen, ship, aliens,
bullets)
run_game()
Так как пришельцы уже не создаются напрямую в 
alien_invasion .py
, импортировать 
класс 
Alien
в этот файл не обязательно.
Создайте пустую группу для хранения всех пришельцев в игре 

. Затем создайте 
новую функцию 
create_fleet()

, которую мы вскоре вызовем, и передайте ей 
ai_settings
, объект 
screen
и пустую группу 
aliens
. Затем измените вызов 
update_
screen()
, чтобы предоставить функции доступ к группе пришельцев 

.
Также необходимо внести изменения в 
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)
рисует каждого пришельца в группе 
на экране.


262

Достарыңызбен бөлісу:
1   ...   156   157   158   159   160   161   162   163   ...   266




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

    Басты бет