Have funny!
- Мэн Цзянин, группа 3530904/90102 (СПбПУ)
- Ли Ицзя, группа 3530904/90102 (СПбПУ)
- Miracle-Milk (Keimyung University)
Игроки могут управлять собственными самолетами и уничтожать вражеские самолеты!
- Git - распределенный контроль версий
- GitHub - хранилище кода
- PyCharm - Разработка и тестирование программного обеспечения
- CI/CD - непрерывная интеграция
- Pylink - Автоматизированное тестирование кода, обеспечивающее последовательный стиль кода и соблюдение стиля PEP 8
- Drawio - составление блок-схем
- Когда игра начинается, фоновое изображение непрерывно перемещается вниз
- Визуально создать иллюзию, что самолет героя постоянно летит вверх
- Фон игры постоянно меняется
- Положение главного героя игры остается прежним
-
Понимание и краткое описание проекта
- Нарисовать несколько неподвижных изображений в окне игры
- Перемещайте изображения, чтобы анимировать их в зависимости от взаимодействия с пользователем или других обстоятельств
- Определить, были ли уничтожены вражеские самолеты или нет, на основе перекрытия изображений и т.д.
-
Создать основу игры
- Определите обязанности основной программы
- Реализуйте основные классы программы
- Подготовьте набор игровых спрайтов
-
Создание графического окна с помощью pygame
-
Инициализация и выход из игры
-
Понимание системы координат в игре
-
Создание главного окна игры
-
Простой игровой цикл
Инициализация игры Игровой цикл Установите игровое окно Установите частоту обновления Нарисовать начальные позиции изображений Определить взаимодействие с пользователем Установите игровые часы Обновите все позиции изображения Обновление экрана
-
-
Простая анимационная реализация героя
- Запишите начальное положение героя
- Перемещайте
y - 1
- вверх каждый раз в игровом цикле y <= 0
перемещает героя в нижнюю часть экрана- Требования.
- Когда игра начинается, герой появляется в горизонтальной середине экрана, в 120 пикселях от нижней части экрана
- Герой выпускает три пули подряд каждые 0,5 секунды
- По умолчанию герой не двигается, и им нужно управлять по горизонтали с помощью клавиш со стрелками влево/вправо Прослушивание событий в игровом цикле
- Улавливать действия пользователя и реагировать на них соответствующим образом
-
Эльфы и эльфийские группы
- Эльфы должны обладать двумя важными свойствами
- изображение изображение, которое будет отображаться
rect
положение изображения, которое будет отображаться на экране
- группа спрайтов может содержать несколько объектов спрайтов Использование игровых спрайтов и групп спрайтов для создания вражеских машин
- Создание вражеских самолетов с использованием производных игровых спрайтов и групп спрайтов и анимация вражеских самолетов
- Импортирование модуля
plane_sprites
- Создание объектов спрайтов и объектов групп спрайтов при инициализации игры
- В игровом цикле пусть группа спрайтов вызывает методы
update()
иdraw(screen)
соответственно. - Волшебник
- Инкапсулирует изображение, положение прямоугольника и скорость
- Предоставьте метод
update()
для обновления прямоугольника позиции в соответствии с требованиями игры
- Группа мастеров
- Содержит несколько объектов спрайта
- метод обновления для всех спрайтов в группе спрайтов, чтобы вызвать метод обновления для обновления их позиций
- метод
draw(screen)
для рисования всех спрайтов в группе спрайтов на экране
- Требования.
- Когда игра начинается, вражеский самолет будет появляться каждые 1 секунду
- Каждый вражеский самолет летит к нижней части экрана с разной скоростью
- Каждый вражеский самолет появляется в разном горизонтальном положении
- Когда вражеский самолет покидает нижнюю часть экрана, он не возвращается на экран
- Эльфы должны обладать двумя важными свойствами
plane_main
- инкапсулировать основной класс игры
- создать игровой объект
- начать игру
plane_sprites
- Инкапсулирует все подклассы спрайтов, которые используются в игре
- Предоставить сопутствующие инструменты для игры
Если вы обнаружите какие-либо проблемы в процессе использования, вы можете отправить issue или внести свои собственные изменения в fork и отправить pull request.
Если вы подаете запрос на перенос, пожалуйста, убедитесь, что стиль вашего кода соответствует существующему коду проекта (в соответствии с PEP 8), что переменные четко названы, и что они правильно прокомментированы.