М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет197/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   193   194   195   196   197   198   199   200   ...   334
Байланысты:
Изучаем Python

ПРИМЕЧАНИЕ
У вычислений в программировании есть одна замечательная особен-
ность: не обязательно быть полностью уверенными в правильности формулы, когда вы 
ее пишете . Вы можете опробовать формулу на практике и посмотреть, что из этого полу-
чится . В худшем случае получится экран, до отказа забитый пришельцами или, наоборот, 
пустой . В этом случае вы пересмотрите формулу на основании полученных результатов .
Создание ряда
Все готово к тому, чтобы сгенерировать полный ряд пришельцев. Так как наш код 
создания одного пришельца работает правильно, мы перепишем 
_create_fleet()
для создания ряда пришельцев:
alien_invasion.py
def _create_fleet(self):
"""Создает флот пришельцев."""
# Создание пришельца и вычисление количества пришельцев в ряду
# Интервал между соседними пришельцами равен ширине пришельца.

alien = Alien(self)

alien_width = alien.rect.width

available_space_x = self.settings.screen_width - (2 * alien_width)
number_aliens_x = available_space_x // (2 * alien_width)
# Создание первого ряда пришельцев.

for alien_number in range(number_aliens_x):
# Создание пришельца и размещение его в ряду.
alien = Alien(self)

alien.x = alien_width + 2 * alien_width * alien_number
alien.rect.x = alien.x
self.aliens.add(alien)
Большая часть этого кода уже была описана ранее. Для размещения пришельцев 
необходимо знать ширину и высоту одного пришельца, и мы создаем его в точке 

перед выполнением вычислений. Этот пришелец не войдет во флот, поэтому он не 
включается в группу 
aliens
. В точке 

ширина пришельца определяется по его 
атрибуту 
rect
, а полученное значение сохраняется в 
alien_width
, чтобы избежать 
лишних обращений к атрибуту 
rect
. В точке 

вычисляется доступное горизон-
тальное пространство и количество пришельцев, которые в нем поместятся.
Затем создается цикл от 0 до количества создаваемых пришельцев 

. В теле цикла 
создается новый пришелец, после чего задается его координата 
x
для размещения 


274

Достарыңызбен бөлісу:
1   ...   193   194   195   196   197   198   199   200   ...   334




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

    Басты бет