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



Pdf көрінісі
бет190/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   186   187   188   189   190   191   192   193   ...   334
Байланысты:
Изучаем Python


Глава 12 • Инопланетное вторжение

self.rect.y = self.y
def draw_bullet(self):
"""Вывод снаряда на экран."""

pygame.draw.rect(self.screen, self.color, self.rect)
Метод 
update()
управляет позицией снаряда. Когда происходит выстрел, снаряд 
двигается вверх по экрану, что соответствует уменьшению координаты 
y
; следова-
тельно, для обновления позиции снаряда следует вычесть величину, хранящуюся 
в 
settings.bullet_speed
, из 
self.y

. Затем значение 
self.y
используется для 
изменения значения 
self.rect.y

.
Атрибут 
bullet_speed
позволяет увеличить скорость снарядов по ходу игры или 
при изменении ее поведения. Координата 
x
снаряда после выстрела не изменяется, 
поэтому снаряд летит вертикально по прямой линии.
Для вывода снаряда на экран вызывается функция 
draw_bullet()
. Функция 
draw_
rect()
заполняет часть экрана, определяемую прямоугольником снаряда, цветом 
из 
self.color

.
Группировка снарядов
Класс 
Bullet
и все необходимые настройки готовы; можно переходить к написанию 
кода, который будет выпускать снаряд каждый раз, когда игрок нажимает клавишу 
«пробел». Сначала мы создадим в 
AlienInvasion
группу для хранения всех летя-
щих снарядов, чтобы программа могла управлять их полетом. Эта группа будет 
представлена экземпляром класса 
pygame.sprite.Group
— своего рода списком 
с расширенной функциональностью, которая может быть полезна при построении 
игр. Мы воспользуемся группой для прорисовки снарядов на экране при каждом 
проходе основного цикла и обновления текущей позиции каждого снаряда.
Группа будет создаваться в 
__init__()
:
alien_invasion.py
def __init__(self):
...
self.ship = Ship(self)
self.bullets = pygame.sprite.Group()
Позиция снаряда будет обновляться при каждом проходе цикла 
while
:


Достарыңызбен бөлісу:
1   ...   186   187   188   189   190   191   192   193   ...   334




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

    Басты бет