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



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


Глава 12 • Стреляющий корабль
модуль содержит класс с именем 
Settings
для хранения всех настроек. Такое 
решение позволит передавать один объект вместо множества отдельных настро-
ек. Кроме того, оно упрощает вызовы функций и упрощает изменение внешнего 
вида игры с ростом проекта. Чтобы внести изменения в игру, достаточно будет 
изменить некоторые значения в 
settings .py
вместо того, чтобы искать разные на-
стройки в файлах.
Исходная версия класса 
Settings
выглядит так:
settings.py
class Settings():
"""Класс для хранения всех настроек игры Alien Invasion."""
def __init__(self):
"""Инициализирует настройки игры."""
# Параметры экрана
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230, 230, 230)
Чтобы создать экземпляр 
Settings
и использовать его для обращения к настройкам, 
внесите изменения в 
alien_invasion .py
:
alien_invasion.py
...
import pygame
from settings import Settings
def run_game():
# Инициализирует pygame, settings и объект экрана.
pygame.init()
 
ai_settings = Settings()
 
screen = pygame.display.set_mode(
(ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
# Запуск основного цикла игры.
while True:
...
# При каждом проходе цикла перерисовывается экран.
 
screen.fill(ai_settings.bg_color)
# Отображение последнего прорисованного экрана.
pygame.display.flip()
run_game()
Класс 
Settings
импортируется в основной файл программы, после чего программа 
создает экземпляр 
Settings
и сохраняет его в 
ai_settings
после вызова 
pygame.
init()

. При создании экрана 

используются атрибуты 
screen_width
и 
screen_
height
объекта 
ai_settings
, после чего объект 
ai_settings
также используется для 
получения цвета фона при заполнении экрана 

.


Добавление изображения корабля
235
Добавление изображения корабля
А теперь добавим в игру космический корабль, которым управляет игрок. Чтобы 
вывести его на экран, мы загрузим изображение, после чего воспользуемся методом 
Pygame 
blit()
для вывода изображения.
Выбирая графику для своих игр, обязательно обращайте внимание на условия ли-
цензирования. Самый безопасный и дешевый начальный вариант — использование 
бесплатной графики с таких сайтов, как 
http://pixabay.com/
.
В игре можно использовать практически любые графические форматы, но проще 
всего использовать файлы в формате 
.bmp
, потому что этот формат Pygame загру-
жает по умолчанию. И хотя Pygame можно настроить для других типов файлов, 
некоторые типы зависят от установки на компьютере определенных графических 
библиотек. (Большинство изображений, которые вы найдете, имеют формат 
.jpg

.png
или 
.gif
, но их можно преобразовать в формат 
.bmp
при помощи таких про-
грамм, как Photoshop, GIMP или Paint.)
Обратите особое внимание на цвет фона вашего изображения. Попробуйте найти 
файл с прозрачным фоном, который можно заменить любым цветом фона в гра-
фическом редакторе. Чтобы ваша игра хорошо смотрелась, цвет фона изображения 
должен соответствовать цвету фона игры. Также можно подобрать цвет фона игры 
под цвет фона изображения.
В игре Alien Invasion используется файл 
ship .bmp
(рис. 12.1), который можно загру-
зить в числе ресурсов книги по адресу 
https://www.nostarch.com/pythoncrashcourse/

Цвет фона файла соответствует настройкам, используемым в проекте. Создайте 
в главном каталоге проекта (
alien_invasion
) каталог с именем 
images
. Сохраните файл 
ship .bmp
в каталоге 
images
.


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




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

    Басты бет