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



Pdf көрінісі
бет135/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   131   132   133   134   135   136   137   138   ...   238
Байланысты:
2 5343781172763690906

Рис. 13.2. Появился первый пришелец

Чтобы пришелец появился на экране, программа вызывает его метод 

blitme()

 

в 



update_screen()

:

game_functions.py

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

...



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

# Все пули выводятся позади изображений корабля и пришельцев.

for bullet in bullets:

bullet.draw_bullet()

ship.blitme()

    alien.blitme()

            

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

pygame.display.flip()

Пришелец выводится после прорисовки корабля и пуль, так что пришельцы будут 

находиться на верхнем «слое» экрана. На рис. 13.2 изображен первый пришелец.

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

всего флота.

Построение флота

Чтобы нарисовать флот пришельцев, необходимо вычислить, сколько пришельцев 

поместится в одном ряду и сколько рядов поместится по высоте. Сначала мы вы-

числим горизонтальные интервалы между пришельцами и создадим ряд; затем 

будет вычислен вертикальный интервал и создан весь флот.

Вычисление количества пришельцев в одном ряду

Чтобы определить, сколько пришельцев помещается в одном ряду, сначала вы-

числим доступное горизонтальное пространство. Ширина экрана хранится в 

ai_


settings.screen_width

, но с обеих сторон экрана необходимо зарезервировать 

пустые интервалы. Определим их равными ширине одного пришельца. Так как 

ширина уменьшается на величину двух интервалов, доступное пространство равно 

ширине экрана за вычетом удвоенной ширины пришельца:

available_space_x = ai_settings.screen_width — (2 * alien_width)

Также необходимо зарезервировать интервалы между пришельцами; они будут со-

ставлять одну ширину пришельца. Пространство, необходимое для вывода одного 

пришельца, равно его удвоенной ширине: одна ширина для самого пришельца и еще 

одна для пустого интервала справа. Чтобы определить количество пришельцев на 

экране, разделим доступное пространство на удвоенную ширину пришельца:

number_aliens_x = available_space_x / (2 * alien_width)

Эти вычисления будут включены в программу при создании флота.



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




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

    Басты бет