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



Pdf көрінісі
бет184/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   180   181   182   183   184   185   186   187   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 14 • Ведение счета
screen_rect = screen.get_rect()
for alien in aliens.sprites():
if alien.rect.bottom >= screen_rect.bottom:
# Происходит то же, что при столкновении с кораблем.
ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)
break
Так как 
check_aliens_bottom()
теперь получает параметр 
sb
, мы добавляем аргу-
мент 
sb
в вызов 
ship_hit()
.
Остается добавить 
sb
в вызов 
update_aliens()
в файле 
alien_invasion .py
:
alien_invasion.py
# Запуск основного цикла игры.
while True:
...
if stats.game_active:
ship.update()
gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
bullets)
gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,
bullets)
...
На рис. 14.6 показана полная игровая информация на экране, с количеством остав-
шихся кораблей в левой верхней части экрана.
Рис. 14.6.
Полная игровая информация в Alien Invasion


Итоги
307
УПРАЖНЕНИЯ
14-4 . Исторический рекорд: в текущей версии рекорд сбрасывается каждый раз, когда игрок 
закрывает и перезапускает Alien Invasion . Чтобы этого не происходило, запишите рекорд 
в файл перед вызовом sys .exit() и загрузите его при инициализации значения в GameStats .
14-5 . Рефакторинг: найдите функции и методы, которые решают более одной задачи, и про-
ведите рефакторинг, улучшающий структуру и эффективность кода . Например, переме-
стите часть кода функции check_bullet_alien_collisions(), которая запускает новый уровень 
при уничтожении флота, в функцию start_new_level() . Также переместите четыре метода, 
вызываемых в методе __init__() класса Scoreboard, в метод prep_images() для сокращения 
длины __init__() . Метод prep_images() также может оказать помощь check_play_button() 
или start_game(), если вы уже провели рефакторинг check_play_button() .


Достарыңызбен бөлісу:
1   ...   180   181   182   183   184   185   186   187   ...   266




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

    Басты бет