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


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



Pdf көрінісі
бет122/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   118   119   120   121   122   123   124   125   ...   238
Байланысты:
2 5343781172763690906

Рис. 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

, содержащие 

координаты левого верхнего угла. Эти атрибуты избавляют вас от вычислений, 

которые раньше разработчикам игр приходилось выполнять вручную, притом 

достаточно часто.



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



Достарыңызбен бөлісу:
1   ...   118   119   120   121   122   123   124   125   ...   238




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

    Басты бет