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



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

237
ПРИМЕЧАНИЕ
В Pygame начало координат (0, 0) находится в левом верхнем углу экрана, а оси направлены сверху 
вниз и слева направо . На экране с размерами 1200 на 800 начало координат располагается в левом 
верхнем углу, а правый нижний угол имеет координаты (1200, 800) .
Корабль будет расположен в середине нижней стороны экрана. Для этого мы сна-
чала сохраняем прямоугольник экрана в 
self.screen_rect

, а затем присваиваем 
self.rect.centerx
(координата 
x
центра корабля) значение атрибута 
centerx
пря-
моугольника экрана 

. Атрибуту 
self.rect.bottom
(координата 
y
низа корабля) 
присваивается значение атрибута 
bottom
прямоугольника экрана. Pygame исполь-
зует эти атрибуты 
rect
для позиционирования изображения, чтобы корабль был 
выровнен по центру, а его нижний край совпадал с нижним краем экрана.
В точке 

определяется метод 
blitme()
, который выводит изображение на экран 
в позиции, заданной 
self.rect
.
Вывод корабля на экран
Изменим программу 
alien_invasion .py
, чтобы в ней создавался корабль (экземпляр 
Ship
) и вызывался метод 
blitme()
класса 
Ship
:
alien_invasion.py
...
from settings import Settings
from ship import Ship
def run_game():
...
pygame.display.set_caption("Alien Invasion")
# Создание корабля.
 
ship = Ship(screen)
# Start the main loop for the game.
while True:
...
# При каждом проходе цикла перерисовывается экран.
screen.fill(ai_settings.bg_color)
 
ship.blitme()
# Отображение последнего прорисованного экрана.
pygame.display.flip()
run_game()
После создания экрана программа импортирует класс 
Ship
и создает его экземпляр 
(с именем 
ship
). Это должно происходить до начала основного цикла 
while


чтобы при каждом проходе цикла не создавался новый экземпляр корабля. Чтобы 
перерисовать корабль на экране, мы вызываем 
ship.blitme()
после заполнения 
фона, так что корабль выводится поверх фона 

.
Если вы запустите 
alien_invasion .py
сейчас, вы увидите пустой игровой экран, в цен-
тре нижней стороны которого находится корабль (рис. 12.2).




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




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

    Басты бет