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


Рис. 12.1. Корабль для игры Alien Invasion 236



Pdf көрінісі
бет145/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   141   142   143   144   145   146   147   148   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

Рис. 12.1.
Корабль для игры Alien Invasion


236
Глава 12 • Стреляющий корабль
Создание класса Ship
После того как изображение корабля выбрано, его необходимо вывести на экран. 
Для работы с кораблем мы напишем модуль 
ship
, содержащий класс 
Ship
. Этот 
класс реализует б
у
льшую часть поведения корабля.
ship.py
import pygame
class Ship():
def __init__(self, screen):
"""Инициализирует корабль и задает его начальную позицию."""
self.screen = screen
# Загрузка изображения корабля и получение прямоугольника.

self.image = pygame.image.load('images/ship.bmp')
 
self.rect = self.image.get_rect()
 
self.screen_rect = screen.get_rect()
# Каждый новый корабль появляется у нижнего края экрана.
 
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
 
def blitme(self):
"""Рисует корабль в текущей позиции."""
self.screen.blit(self.image, self.rect)
Сначала программа импортирует модуль 
pygame
. Метод 
__init__()
класса 
Ship
по-
лучает два параметра: ссылку 
self
и объект 
screen
, на котором выводится корабль. 
Загрузка изображения выполняется вызовом 
pygame.image.load()

. Функция 
возвращает поверхность, представляющую корабль; полученный объект сохраня-
ется в 
self.image
.
После того как изображение будет загружено, метод 
get_rect()
используется 
для получения атрибута 
rect
поверхности 

. Один из факторов эффективности 
Pygame заключается в том, что программист может выполнять операции с игровы-
ми элементами как с прямоугольниками даже в том случае, если они имеют другую 
форму. Операции с прямоугольниками эффективны, потому что прямоугольник — 
простая геометрическая фигура. Обычно этот подход работает достаточно хорошо 
и игроки не замечают, что программа не отслеживает точную геометрическую 
форму каждого игрового элемента.
При работе с объектом 
rect
для вас доступны координаты 
x
и 
y
верхней, нижней, 
левой и правой сторон, а также центра. Присваивая любые из этих значений, вы 
задаете текущую позицию прямоугольника.
Местонахождение центра игрового элемента определяется атрибутами 
center

centerx
или 
centery
прямоугольника. Стороны определяются атрибутами 
top

bottom

left
и 
right
. Для изменения горизонтального или вертикального рас-
положения прямоугольника достаточно задать атрибуты 
x
и 
y
, содержащие 
координаты левого верхнего угла. Эти атрибуты избавляют вас от вычислений, 
которые раньше разработчикам игр приходилось выполнять вручную, притом 
достаточно часто.


Добавление изображения корабля


Достарыңызбен бөлісу:
1   ...   141   142   143   144   145   146   147   148   ...   266




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

    Басты бет