18.26M
Категория: ПрограммированиеПрограммирование

Программирование на Python. Знакомство с модулем Pygame. Урок 6

1.

Программирование
на Python
Урок 6
Знакомство с модулем Pygame

2.

Программирование на Python | Знакомство с модулем Pygame
Что будет на уроке сегодня?
Знакомство с новой библиотекой для создания игр — pygame
Создание и настройка игрового окна
Игровой цикл
Основные составляющие игрового цикла
Спрайты и графика
Отрисовка и анимация

3.

Знакомство
с pygame

4.

Программирование на Python | Знакомство с модулем Pygame
Установка модуля pygame
Pygame — это точно такой же модуль, как и все остальные. Но, в отличие от turtle
или random, pygame отсутствует внутри нашего проекта и его мы должны сначала
установить!
Чтобы это сделать, кликните по вкладке Python Packages внизу вашей среды разработки:

5.

Программирование на Python | Знакомство с модулем Pygame
Установка модуля pygame
Напишите в поиске pygame, нажмите на 1 результат и затем на кнопку Install package. Через некоторое
время он установится.
После этого уже можно будет подключать установленный модуль к нашему
проекту с помощью знакомой вам командыimport
import:pygame

6.

Программирование на Python | Знакомство с модулем Pygame
Подключение модуля pygame
Далее мы должны включить (или правильнее будет сказать — инициализировать) наш модуль pygame.
Потому что сам по себе просто подключенный к проекту с помощью команды import
он пользы не принесет :) Это все равно что купить компьютер и просто поставить его на стол.
Пока вы его не включите, он не начнет что-то делать.
pygame.init()
# Инициализируем модуль pygame

7.

Создание и настройка
игрового окна

8.

Программирование на Python | Знакомство с модулем Pygame
Параметры игрового окна
Параметры игрового окна — это обычные переменные, которые хранят в себе значения.
Нам потребуются такие значения, как: ширина и высота окна, частота обновления экрана,
и название самого экрана:
width = 1200
height = 768
fps = 30
game_name = "Arkanoid"
# ширина игрового окна
# высота игрового окна
# частота кадров в секунду
# название нашей игры

9.

Программирование на Python | Знакомство с модулем Pygame
Создание окна с параметрами
#Создаем игровой экран
screen = pygame.display.set_mode((width, height))
screen — это просто переменная в которой мы будет хранить наш экран
(она нам еще пригодится, поэтому важно сохранить наш экран в переменной, чтобы
иметь возможность к нему обращаться потом и производить какие-нибудь действия)
pygame.display.set_mode() — это конструкция, которая создает экран с указанными
размерами width и height.

10.

Программирование на Python | Знакомство с модулем Pygame
Заголовок окна
pygame.display.set_caption(game_name)
# Заголовок окна
gameName — это наша переменная в которой хранится наименование игры (её мы создали уже ранее)
pygame.display.set_caption() — это функция, которая выводит указанное наименование в заголовке

11.

Программирование на Python | Знакомство с модулем Pygame
Иконка окна
1.
2.
3.
4.
Ищем нужную иконку на сайте: https://www.klipartz.com/ru
Cкачиваем с размером 64px по высоте! Это важно сделать,
потому что бóльший размер иконки у нас не установится:
Переименовываем иконку, чтобы было проще:
Перемещаем иконку в папку с нашим проектом.
Важно! Иконка должна
располагаться в той же
папке, что и файл с кодом!

12.

Программирование на Python | Знакомство с модулем Pygame
Иконка окна
icon = pygame.image.load('icon.png')
pygame.display.set_icon(icon)
# Загружаем файл с иконкой
# Устанавливаем иконку в окно
pygame.image.load() — сохраняет указанный в скобках файл в переменную
pygame.display.set_icon() — загружает картинку иконки в заголовок программы

13.

Перерыв
10 мин

14.

Игровой цикл

15.

Программирование на Python | Знакомство с модулем Pygame
Зачем нужен игровой цикл
Именно в игровом цикле у нас и будут происходить все действия и вся логика игры.
Любая игра в принципе представляет из себя один огромный бесконечный цикл. Да-да именно
бесконечный!
Конечно, мы будем иметь возможность выйти из неё в любой момент. Но так как никто не знает,
когда это произойдет, потому мы изначально и пользуемся бесконечным циклом.

16.

Программирование на Python | Знакомство с модулем Pygame
Создаем игровой цикл
Создадим переменную, в которую запишем значение True. А в цикл While поставим эту переменную:
run = True
while run:
# переменная для управления циклом
# начинаем бесконечный цикл
Пока в переменной run будет True (правда), весь
код, который будет написан ниже будет
работать.
Но как только мы в переменную run поместим
значение False (ложь) то наш игровой цикл
сразу завершится!

17.

Программирование на Python | Знакомство с модулем Pygame
Контроль времени
Скорость цикла необходимо контролировать. Поэтому до цикла создадим
таймер, а внутри цикла мы его запустим:
timer = pygame.time.Clock()
run = True
while run:
timer.tick(fps)
# Создаем таймер pygame
# Переменная для управления циклом
# Начинаем бесконечный цикл
# Контроль времени (обновление игры)
fps — это переменная, которая была создана в параметрах игрового окна

18.

Программирование на Python | Знакомство с модулем Pygame
Игровые события
События происходят постоянно. Что, если игрок нажимает кнопку прыжка, а персонаж не прыгает?
Это нельзя игнорировать, иначе игрок будет разочарован. Для этого pygame сохраняет все
произошедшие события в специальной переменной. А так как данная переменная может содержать в
себе много событий, то чтобы пройтись и проверить все из них, нужно воспользоваться циклом for:
# Обработка ввода (события)
for event in pygame.event.get():

19.

Программирование на Python | Знакомство с модулем Pygame
Игровые события
Внутри данного цикла for проверим есть ли в переменной event событие закрытия экрана.
И если есть, то просто корректно завершим игру:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# Обработка ввода (события)
# Проверить закрытие окна
# Завершаем игровой цикл
pygame.QUIT() — это событие, которое происходит, когда мы кликаем по крестику
нашего окна. Поэтому, как только оно произойдет, нам нужно завершить игровой цикл

записать в переменную run значение False

20.

Спрайты и графика

21.

Программирование на Python | Знакомство с модулем Pygame
Цветной задний фон
Чтобы наш экран выглядел интереснее давайте зальем его одним из
созданных цветов и включим его обновление:
while run:
timer.tick(fps)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
screen.fill(CYAN)
pygame.display.update()
# Начинаем бесконечный цикл
# Контроль времени (обновление игры)
# Обработка ввода (события)
# Проверить закрытие окна
# Завершаем игровой цикл
# Заливка заднего фона
# Обновляем экран

22.

Программирование на Python | Знакомство с модулем Pygame
Переменные с цветами
Для большего удобства заранее создадим переменные с основными цветами.
Коды цветов можно найти по ссылке
# Цвета
BLACK = "#000000"
WHITE = "#FFFFFF"
RED = "#FF0000"
GREEN = "#008000"
BLUE = "#0000FF"
CYAN = "#00FFFF"
# Черный
# Белый
# Красный
# Зеленый
# Синий
# Голубой

23.

Программирование на Python | Знакомство с модулем Pygame
Загружаем спрайт
Сначала необходимо загрузить картинку со спрайтом внутрь нашего проекта:
Затем добавляем код для загрузки спрайта в игру до игрового цикла
pic = pygame.image.load('smile.png')
pic_rect = pic.get_rect()
# Загружаем спрайт
# Получаем рамку спрайта

24.

Программирование на Python | Знакомство с модулем Pygame
Рамка спрайта
Обратите внимание, что мы загрузили картинку, а потом отдельно
определили её рамку с помощью функции: get_rect()
Потому что всё взаимодействие происходит именно через рамку.
Внимание! Вне зависимости от того, будет ли спрайт
круглым или квадратным или иметь сложные формы,
рамка спрайта всегда будет прямоугольной! Её
размеры будут иметь максимальную ширины и
максимальную высоту самого спрайта!

25.

Программирование на Python | Знакомство с модулем Pygame
Отрисовка спрайта
Спрайты отрисовываются уже внутри игрового цикла. Так как многие спрайты будут находиться в
движении, то каждый раз необходимо будет их отрисовывать в новом месте. Также важно команду для
отрисовки спрайта разместить после заполнения заднего фона цветом:
pic = pygame.image.load('smile.png')
pic_rect = pic.get_rect()
while run:
timer.tick(fps)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
screen.fill(CYAN)
screen.blit(pic, pic_rect)
pygame.display.update()
# Загружаем спрайт
# Получаем рамку спрайта
# Начинаем бесконечный цикл
# Контроль времени (обновление игры)
# Обработка ввода (события)
# Проверить закрытие окна
# Завершаем игровой цикл
# Заливка заднего фона
# Отрисовываем спрайт с рамкой
# Обновляем экран

26.

Программирование на Python | Знакомство с модулем Pygame
Полный код программы
Сюда не влазит, поэтому посмотреть можно по ссылке :)

27.

Программирование на Python | Знакомство с модулем Pygame
Итоги
Познакомились с модулем для создания игр — pygame
Узнали про необходимые элементы для любой игры на pygame
Научились создавать и управлять игровым циклом
Загрузили иконку в нашу игру
Узнали что такое спрайт и как добавить его в игру
Написали код, который запускает игровое окно
с нашими настройками

28.

Программирование на Python | Знакомство с модулем Pygame
На следующем занятии:
Добавим анимацию в нашу игру
Научим спрайт двигаться по экрану и отскакивать от его краев
Изучим, что такое координаты и для чего они нужны в игре
Добавим второй игровой объект в игру и научимся управлять
им с клавиш клавиатуры

29.

Немного
повторим

30.

С помощью какой команды можно установить
сторонний модуль в нашу программу?

31.

Что такое fps и для чего он нужен?

32.

Какие действия нужно сделать, если хотим
загрузить дополнительный файл в нашу игру?

33.

Почему спрайт нужно отрисовывать
после заливки фона?

34.

Ваши вопросы

35.

Спасибо
за внимание

36.

Домашнее задание

37.

Заполни, пожалуйста,
форму обратной связи по уроку

38.

Напоминание для преподавателя
● Проверить заполнение Журнала
● Заполнить форму Т22
English     Русский Правила