Это перевод учебника \»Making games with Pygame\», из официальной докуметации к PyGame, сделанный мною.
Making games with Pygame
(Перевод учебника из документации Pygame)
Содержание
1. Введение
1.1. Оформление кода
2. Основные принципы Pygame
2.1. Простейшая игра
2.2. Простые pygame объекты
2.3. Blitting
2.4. Цикл событий
2.5. Ta-da!
3. Начало создание игры
3.1. Первые линии кода и загрузка модулей
3.2. Функции управления ресурсами
4. Создание классов игровых обьектов
4.1. Простой класс мяча
4.1.1. Diversion 1: Спрайты
4.1.2. Diversion 2: Векторная физика
5. Объекты управляемые польхователем
5.1. Простой класс летающей мыши
5.1.1. Diversion 3: События Pygame
6. Соединение всего вместе
6.1. Удар шара о стены
6.2. Удар шара летающей мышью
6.3. Завершение продукта
1. Введение
Прежде всего, я хочу сказать, что учебник расчитан на то, что вы уже читали учебники по основам python и pygame. Возьмите и почитайте их, перед тем как читать то, что изложенно дальше, что бы мне не пришлось повторять то что уже изложенно там. Этот учебник предназначен для тех, кто понимает, как сделать простую интересную игру и кто хочет научиться делать простые интересные игры. Это введение объяснит вам некоторые концепции игрового дизайна, некоторые простые вещи для создания физики мяча, и некоторые способы сделать вашу игру интересно и оригинальной.
Весь код в этом учебнике это работа в создании TomPong, игры которую я написал. К концу учебника вы должны не только иметь прочное понимание Pygame, но и должны также понимать, как TomPong работает, и как сделать свою собственную версию.
Теперь, изложим основы Pygame. Общий способ организации кода для игры это разделить его на следующие шесть разделов:
- Загрузка модулей, которые необходимы в игре. Кроме того вы должны запомнить, что здесь можно ипортировать локальные имена Pygame и модули Pygame в себя.
- Классы обработки ресурсов.Здесь вы должны определить некоторые классы, для обработки основных ресурсов в игре, например звуков и изображений, а так же соединения и разъединения с сетью, загрузки и сохранения игровых файлов и любых других ресурсов, которые могут понадобиться.
- Классы игровых объектов. Определяет классы для вашей игры. В тенисе например, один класс будет отвечать за биту игрока(который вы можете проинициализировать несколько раз, по одному для каждого игрока), и один за мяч(который так же может иметь несколько экземпляров).Если вы хотите что бы у вас в игре было красивое меню, то также хорошей идеей было бы создание класса отвечающего за меню.
- Остальные игровые функции. Содержит другие, необходимые для вашей игры функции, такие как подсчет очков, меню, различные расчеты и преобразования и т.п. Любой код, который вы можете положить в основу игровой логики, но важно понимать, что является самой логикой и что входит в ее основу. Например показ очков не является логикой и поэтому его мы запишем в функции.
- Инициализация игры, включающая сами Pygame объекты, фон, игровые объекты(инициализация экземпляров класса) и другие мелкие кусочки кода, которые вы можете добавить сюда.
- Основной цикл. Он включает в себя какую либо обработку ввода(например наблюдение за нажатыми клавишами/кнопками мыши), код для обновления игровых объектов, и наконец, обновления экрана.
Каждая игра, которую вы делаете, будет иметь все или некоторые из этих разделов, возможно разделы будут несколько другими. Для этого учебника я буду писать о том, как создавался TomPong, и идеи написанные мной, могут использованы при написании любой другой игры. Я так же предполагаю, что вы хотите, что бы весь код находился в одном файле, но если вы делаете большую игру, то хорошей идеей было бы разместить некоторые участки кода в отдельных файлах. Например положив все объекты в игре я в файл \»objects.py\»,поможет сохранить вам игровую логику отдельных объектов игры. Если у вас много кода выполняющего обработку ресурсов, удобно положить их в \»resources.py\». Вы можете с помощью команды \»from objects,resources import *\» импортировать все классы и функции этого модуля. Read more …