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


Если теперь запустить игру, вы увидите целый флот пришельцев (рис. 13.4). Рис. 13.4



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

277
Если теперь запустить игру, вы увидите целый флот пришельцев (рис. 13.4).
Рис. 13.4.
На экране появился весь флот пришельцев
В следующем разделе мы приведем флот в движение.
УПРАЖНЕНИЯ
13.1. Звезды:
найдите изображение звезды. Создайте на экране сетку из звезд.
13.2. Звезды-2:
чтобы звезды выглядели более реалистично, следует внести случайное от-
клонение при размещении звезд. Вспомните, что случайные числа генерируются следую-
щим образом:
from random import randint
random_number = randint(-10,10)
Этот код возвращает случайное целое число в диапазоне от −10 до 10. Используя свой код из 
упражнения 13.1, измените позицию каждой звезды на случайную величину.
Перемещение флота
Флот пришельцев должен двигаться вправо по экрану, пока не дойдет до края; 
тогда флот опускается на заданную величину и начинает двигаться в обратном 
направлении. Это продолжается до тех пор, пока все пришельцы не будут сбиты, 
один из них столкнется с кораблем или не достигнет низа экрана. Начнем с пере-
мещения флота вправо.


278
Глава 13 • Осторожно, пришельцы!
Перемещение вправо
Чтобы корабли пришельцев перемещались по экрану, мы воспользуемся методом 
update()
из 
alien .py
, который будет вызываться для каждого пришельца в группе. 
Сначала добавим настройку для управления скоростью каждого пришельца:
settings.py
def __init__(self):
...
# Настройки пришельцев
self.alien_speed = 1.0
Настройка используется в реализации 
update()
:
alien.py
def __init__(self, ai_game):
"""Инициализирует пришельца и задает его начальную позицию."""
super().__init__()
self.screen = ai_game.screen
self.settings = ai_game.settings
...
def update(self):
"""Перемещает пришельца вправо."""

self.x += self.settings.alien_speed

self.rect.x = self.x
Параметр 
settings
создается в 
__init__()
, чтобы к скорости пришельца можно 
было обратиться в 
update()
. При каждом обновлении позиции пришельца мы 
смещаем его вправо на величину, хранящуюся в 
alien_speed
. Точная позиция 
пришельца хранится в атрибуте 
self.x
, который может принимать вещественные 
значения 

. Затем значение 
self.x
используется для обновления позиции прямо-
угольника пришельца 

.
В основном цикле 
while
уже содержатся вызовы обновления корабля и снарядов. 
Теперь необходимо также обновить позицию каждого пришельца:


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




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

    Басты бет