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



Pdf көрінісі
бет225/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   221   222   223   224   225   226   227   228   ...   334
Байланысты:
Изучаем Python

alien_invasion.py
def __init__(self):
...
pygame.display.set_caption("ALien Invasion")
# Создание экземпляров для хранения статистики
# и панели результатов.
self.stats = GameStats(self)
self.sb = Scoreboard(self)
...
Затем панель результатов выводится на экран в 
_update_screen()
:
alien_invasion.py
def _update_screen(self):
...
self.aliens.draw(self.screen)
# Вывод информации о счете.
self.sb.show_score()
# Кнопка Play отображается в том случае, если игра неактивна.
...
Метод 
show_score()
вызывается непосредственно перед отображением кнопки 
Play
.


Подсчет очков
305
Если запустить Alien Invasion сейчас, в правом верхнем углу экрана отображается 
счет 0. (Пока мы просто хотим убедиться в том, что счет отображается в нужном 
месте, прежде чем заниматься дальнейшей доработкой системы подсчета очков.) 
На рис. 14.2 изображено окно игры перед ее началом.
Рис. 14.2.
Счет отображается в правом верхнем углу экрана
А теперь нужно организовать начисление очков за каждого пришельца!
Обновление счета при уничтожении пришельцев
Чтобы на экране выводился оперативно обновляемый счет, мы будем обновлять 
значение 
stats.score
при каждом попадании в пришельца, а затем вызывать 
prep_score()
для обновления изображения счета. Но сначала нужно определить, 
сколько очков игрок будет получать за каждого пришельца:
settings.py
def initialize_dynamic_settings(self):
...
# Подсчет очков
self.alien_points = 50
Стоимость каждого пришельца в очках будет увеличиваться по ходу игры. Что-
бы значение сбрасывалось в начале каждой новой игры, мы задаем значение 
в 
initialize_dynamic_settings()
.


306

Достарыңызбен бөлісу:
1   ...   221   222   223   224   225   226   227   228   ...   334




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

    Басты бет