какие игры можно сделать на python

Игры, в которых использовался Python

Авторизуйтесь

Игры, в которых использовался Python

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Сегодня вашему вниманию представляется статья и небольшая инфографика, которая покажет вам на конкретных примерах, что Python столь же эффективен в разработке игр, как и в других областях.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Вот некоторые из самых известныx игр, в которых был в той или иной мере использован Python:

Battlefield

(2005 / Digital Illusions CE (DICE) / Стокгольм)

Все серии Python используется в игре для различных нужд, от серверных элементов управления до внутренней логики игры. Battlefield — это одна из самых популярных игр в жанре симулятора войны, которая хорошо известна на весь мир.

EVE Online

(2003 / CCP Games / Исландия)

Это многопользовательская онлайн ролевая игра (MMORPG), действие которой разворачивается в антураже научно-фантастического пространства. Пользовательская база насчитывает более 500 000 игроков. EVE Online полностью написана на StacklessPython, что делает ее одной из крупнейших игр, использующих Python для своих нужд.

Mount & Blade

(2008 / Tale Worlds / Турция)

Ролевая игра, действие которой происходит в средние века. Игра была разработана всего лишь двумя людьми, мужем и женой, они использовали скрипты на языке Python для обеспечения модульности игры. Особенности игры — это огромный игровой мир и эпические сражения в реальном времени.

Sims 4

(2014 / Е.А. Maxis Sims Studio / США)

По праву является самой известной игрой в жанре симуляции жизни. Sims 4 — первая компьютерная игра, которая занимала лидирующие позиции на всевозможных игровых чартах на протяжении двух лет, и продалась в объеме 408,150 экземпляров по всему миру в течение первых четырех дней. На сегодняшний день продано более 1.1 миллиона копий по всему миру, что делает Sims 4 одной из самых продаваемых игр, которые использует Python — для обеспечения внутриигрового моддинга, открывающего пользователям огромные возможности по изменению параметров игры.

Civilization IV

(2005 / Firaxis Games / США)

Это компьютерная игра в жанре пошаговой стратегии. Цель игрока — подчинить себе весь мир путем дипломатических переговоров или кровожадной войны. Большая часть игры написана на Python, и Boost Python, что дает возможность пользователям собственноручно создавать модификации для игры.

Frets On Fire (FoF)

(2006 / Unreal Voodoo / Финляндия)

Музыкальная игра с открытым и свободным исходным кодом, которая сама по себе имитирует коммерческую игру Guitar Hero. Игра полностью написана на Python с использованием библиотеки Pygame. Благодаря открытости и простоте кода, игра представляется как хорошая площадка для изучения и практики программирования.

Спасибо CheckiO за интересную статью.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Источник

Пишем игру на Python

Прежде чем мы начнём программировать что-то полезное на Python, давайте закодим что-нибудь интересное. Например, свою игру, где нужно не дать шарику упасть, типа Арканоида. Вы, скорее всего, играли в детстве во что-то подобное, поэтому освоиться будет просто.

Логика игры

Есть игровое поле — простой прямоугольник с твёрдыми границами. Когда шарик касается стенки или потолка, он отскакивает в другую сторону. Если он упадёт на пол — вы проиграли. Чтобы этого не случилось, внизу вдоль пола летает платформа, а вы ей управляете с помощью стрелок. Ваша задача — подставлять платформу под шарик как можно дольше. За каждое удачное спасение шарика вы получаете одно очко.

Алгоритм

Чтобы реализовать такую логику игры, нужно предусмотреть такие сценарии поведения:

Хитрость в том, что всё это происходит параллельно и независимо друг от друга. То есть пока шарик летает, мы вполне можем двигать платформу, а можем и оставить её на месте. И когда шарик отскакивает от стен, это тоже не мешает другим объектам двигаться и взаимодействовать между собой.

Получается, что нам нужно определить три класса — платформу, сам шарик и счёт, и определить, как они реагируют на действия друг друга. Поле нам самим определять не нужно — для этого есть уже готовая библиотека. А потом в этих классах мы пропишем методы — они как раз и будут отвечать за поведение наших объектов.

По коням, пишем на Python

Для этого проекта вам потребуется установить и запустить среду Python. Как это сделать — читайте в нашей статье.

Начало программы

Чтобы у нас появилась графика в игре, используем библиотеку Tkinter. Она входит в набор стандартных библиотек Python и позволяет рисовать простейшие объекты — линии, прямоугольники, круги и красить их в разные цвета. Такой простой Paint, только для Python.

Чтобы создать окно, где будет видна графика, используют класс Tk(). Он просто делает окно, но без содержимого. Чтобы появилось содержимое, создают холст — видимую часть окна. Именно на нём мы будем рисовать нашу игру. За холст отвечает класс Canvas(), поэтому нам нужно будет создать свой объект из этого класса и дальше уже работать с этим объектом.

Если мы принудительно не ограничим скорость платформы, то она будет перемещаться мгновенно, ведь компьютер считает очень быстро и моментально передвинет её к другому краю. Поэтому мы будем искусственно ограничивать время движения, а для этого нам понадобится модуль Time — он тоже стандартный.

Последнее, что нам глобально нужно, — задавать случайным образом начальное положение шарика и платформы, чтобы было интереснее играть. За это отвечает модуль Random — он помогает генерировать случайные числа и перемешивать данные.

Запишем всё это в виде кода на Python:

Мы подключили все нужные библиотеки, сделали и настроили игровое поле. Теперь займёмся классами.

Шарик

Сначала проговорим словами, что нам нужно от шарика. Он должен уметь:

Платформа

Сделаем то же самое для платформы — сначала опишем её поведение словами, а потом переведём в код. Итак, вот что должна уметь платформа:

А вот как это будет в виде кода:

Можно было не выделять счёт в отдельный класс и каждый раз обрабатывать вручную. Но здесь реально проще сделать класс, задать нужные методы, чтобы они сами потом разобрались, что и когда делать.

От счёта нам нужно только одно (кроме конструктора) — чтобы он правильно реагировал на касание платформы, увеличивал число очков и выводил их на экран:

У нас всё готово для того, чтобы написать саму игру. Мы уже провели необходимую подготовку всех элементов, и нам остаётся только создать конкретные объекты шарика, платформы и счёта и сказать им, в каком порядке мы будем что делать.

Смысл игры в том, чтобы не уронить шарик. Пока этого не произошло — всё движется, но как только шарик упал — нужно показать сообщение о конце игры и остановить программу.

Посмотрите, как лаконично выглядит код непосредственно самой игры:

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Что дальше

На основе этого кода вы можете сделать свою модификацию игры:

Источник

Введение в Python

Поиск

Новое на сайте

Пятнашки на Python

В качестве пятнашек у нас будет выступать список c целыми числами.

Теперь напишем функцию, которая будет отрисовывать пятнашки из списка:

Не забудьте вызвать функцию отрисовки игрового поля перед вызовом root.mainloop()

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Добавляем обработчик событий. При клике на клеточку мы поменяем ее местами с пустой клеткой.

Привязываем обработчик событий к холсту

Теперь добавим функцию show_victory_plate, которая будет выводить сообщение о победе на экран.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Чтобы запустить игру нам нужно добавить несколько последних штрихов.

Теперь добавим только код перемешивания блоков и игра готова

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Исходный код игры на гитхаб

Сапер на Python

Для начала зададим глобальные переменные и создадим окно игры:

Получим примерно такую картинку

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Теперь добавим возможность отслеживать мины и нажатые клеточки, а также функционал для обработки клика по клеткам:

Осталось привязать обработчики событий для созданных функций. Поместите следующий код после строчки с.pack() :

Если вы все сделали правильно, то сможете кликать по клеткам:

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Для начала следует объяснить, что у каждой клеточки есть свой уникальный идентификатор. В коде мы получаем доступ к нему через переменную библиотеки tkinter CURRENT. Если нарисовать идентификаторы на клетках, то получим вот такую картину.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Теперь напишем функцию для получения соседних идентификаторов клетки. У нас может быть восемь уникальных ситуаций, когда количество соседних клеток не равно восьми. Посмотрите на нижнее изображение (поле GRID_SIZE увеличено c 8 до 9 для наглядности)

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

У угловых клеток (1, 9, 73, 81) только по 3 соседа. У клеток из крайних рядов (например, 5, 37, 45, 77) по 5 соседей. Во всех остальных ситуациях (например, 41) соседних клеток 8. Напишем функцию, реализующую данный функционал:

Теперь создадим функцию подсчета мин в соседних клетках. Это достаточно просто сделать используя метод intersection типа данных сет.

И, наконец, рекурсивная функция которая свяжет все это вместе:

Конечно, простое увеличение лимита рекурсии лишь отодвигает возникновение ошибки, но не решает проблему как таковую. Попробуйте определить функцию clearance таким образом, чтобы убрать рекурсию вообще. Я не публикую решение этой задачи тут, оно будет добавлено на Github. Постарайтесь решить эту задачу самостоятельно. На этом все, приятной игры.

Полный код игры сапер на Python на GitHub

Змейка на Python

Сегодня мы напишем игру змейка на Python. Это одна из самых распространенных аркад в мире. В основе ее реализации будет два класса:

В процессе написания змейки у нас будут следующие этапы:

Создание графического окна приложения.

Мы будем работать с библиотекой tkinter, в котором окно задается следующим образом:

Обратите внимание, что весь остальной код должен находиться до строки root.mainloop()

Объявление вспомогательных глобальных переменных.

Тут все просто, для облегчения последующей работы создадим следующие переменные:

Установка на окне области для рисования.

Область для рисования в tkinter реализована при помощи класса Canvas, им и воспользуемся.

Если вы все делали правильно, то запустив полученный код получите следующую картину

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Создание классов сегмента и змеи:

Класс сегмента змейки.

Сегмент змейки будет простым прямоугольником, созданным при помощи метода create_rectangle класса Canvas модуля tkinter.

Класс змейки.

Змейка у нас будет набором сегментов. У нее будут методы движения, изменения направления и добавления сегмента.

Вот так выглядит наша игра на данный момент.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Создание вспомогательных функций.

Для начала напишем функцию создания яблок (или что там наша змея будет есть). Не забудьте импортировать модуль random, чтобы все работало

Теперь основная функция main, которая будет управлять игровым процессом.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Вот такая у нас получилась змейка на Python. Попробуйте немного усовершенствовать игру, например, добавить счет, ускорение игры, отредактировать функцию create_block чтобы новые яблоки не появлялись на самой змейке, или реализовать систему уровней.

UPD: В репозитории добавлен вариант с перезапуском игры после проигрыша.

Полный код игры змейка на Python на GitHub

Пин-понг на Python

Продолжая наш цикл аркадных игр на Python, напишем свою реализацю игры Пин-Понг на Python с использованием библиотеки tkinter.

Создание игрового поля.

Начнем с установки игрового поля. Зададим родительское окно, область для отрисовки анимации и основные элементы игрового поля.

Обратите внимание на создание глобальных переменных в начале скрипта. Они нам пригодятся для того, чтобы нам было легче настраивать нашу игру. Если у нас ширина 900 пикселей, то проще создать переменную WIDTH, присвоить ей значение 900 и использовать ее имя в тексте программы, чем вручную каждый раз переписывать 900. Вы ощутите пользу от этого, когда захотите изменить ширину окна, и сможете сделать это просто изменив значение этой переменной:

Должно получиться примерно следующее:

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Заставляем мячик двигаться.

Создадим функцию move_ball в которой пропишем код движения мяча. После этого создадим функцию main в которой будем вызывать move_ball и рекурсивно саму себя через root.after

Если вы все правильно добавили, то при запуске скрипта мяч летит в правую сторону. Вы можете изменить скорость и направление движения по горизонтали, изменяя значение BALL_X_CHANGE.

Задаем управление движением ракеток.

Теперь мы можем управлять обеими ракетками.

Отскок мячика от стенок и «ракеток».

Отскок реализуется достаточно просто: при соприкосновении со стенкой или «ракеткой» мы будем изменять значение переменных движения мяча на противоположные. Ради интереса при ударе о ракетку будет увеличиваться горизонтальная скорость мячика и случайным образом изменяться вертикальная.

Теперь наш мячек отскакивает от стенок и ракеток и зависает если попадает в вертикальную границу поля, но не попадает в ракетку.

Подсчет очков и респаун мячика.

Создадим глобальные переменные очков для каждого игрока и обнулим их.

Теперь добавим текстовые объекты в которых будем отображать счет.

Создадим функции изменения счета и респауна мяча

Осталось вставить вызов этих функций вместо pass в функцию move_ball. Замените

Теперь наш пин-понг можно считать завершенным.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Полный код игры пин-понг на Python на GitHub.

Источник

9 идей для начинающих программистов по созданию игр-клонов

Предлагаем вашему вниманию список идей для игр-клонов на python, с помощью которых можно получить практические навыки программирования.

Для тех, кто решил заняться программированием и стремится освоить эту премудрость самостоятельно, существует много источников знаний. Среди них «Invent Your Own Computer Games with Python», а также множество бесплатных книг по программированию для начинающих. Но что такое теоретические знания без практики? Половина дела. Чтобы улучшить навыки в написании кода, нужны проекты с открытым исходным кодом, желательно на соответствующем уровне или просто «для чайников», которые позволят испытать себя в деле и в живую увидеть результаты своего труда.

Предлагаем вашему вниманию список идей для игр-клонов, с помощью которых можно получить практические навыки программирования. Каждая из них сопровождается кратким описанием игры, ссылками на видео геймплея и описанием тех алгоритмов, которые необходимы для работы с ней. Эти приложения были отобраны за их простоту, так что с ними вполне сможет справиться и новичок. Кроме того, для освоения каждой из них потребуется совсем немного времени, примерно один уик-энд для каждой. Конечно, создать клон Mario или Zelda будет сложно, но клоны Tetris или Asteroids как раз то, что нужно.

Orisinal Games:

Сайт Orisinal предлагает большую коллекцию флеш игр с очень простой механикой, которые могут быть скопированы.

Особенно удачной являются Winter Bells, A Daily Cup of Tea, Bugs и Hold the Rope.

1. Dodger

Описание: «Плохие парни» падают с верхней части экрана, и игрок должен избежать встречи с ними. Управление героем осуществляется с помощью клавиш со стрелками или при помощи мыши. Чем позже состоится встреча героя с хулиганом, тем выше балл, заработанный в ходе игры.

Варианты: можно задать, чтобы хулиганы падали с разной скоростью и были различных размеров. Можно также сделать, чтобы они появлялись не только с верхней, но и с боковых сторон экрана. Одним из вариантов может быть наделение героя неуязвимостью на некоторое время, например, за достижение определенного количества баллов, замедление скорости падения “плохих парней” и т.д.

Эта игра описана в главе 20 книги «Invent with Python»

2. Memory Puzzle

Описание: Экран заполнен картами, лежащими рубашкой вверх. Для каждой из карт существует пара. Игрок переворачивает карты попарно. Если они совпадают, они остаются перевернутыми (открытыми). В противном случае они возвращаются в исходное положение. Игрок должен перевернуть все карты за наименьшее количество ходов (за меньшее время), чтобы набрать больше баллов.

Варианты: Можно снабдить игрока «подсказками», указывая на четыре карты из которых одна является парой только что вскрытой. Или, например, в начале на короткое время открыть все поле, чтобы игрок попытался запомнить как можно больше соответствий за это время.

Эта игра описана в главе 1 книги «Making Games with Python & Pygame»

3. Sliding Puzzle

Описание: Это приложение является аналогом всем известной головоломки «Пятнашки» или 15-puzzle. На поле размером 4×4 клетки находятся пронумерованные плитки в количестве 15 штук и одно свободное пространство. Чтобы выиграть, игрок должен передвигая плитки, поставить их в порядке возрастания.

Варианты: Числа можно заменить фрагментами изображения, превратив игру в складывание пазла.

Эта игра описана в главе 4 книги «Making Games with Python & Pygame»

4. Simon

Описание: Четыре цветные кнопки загораются по определенной схеме. После показа картинки, игрок должен повторить рисунок, нажав на кнопки в соответствующем порядке. Рисунок становится больше каждый раз, когда игрок правильно завершает картину. Если игрок нажимает не ту кнопку, игра заканчивается.

Варианты: Можно использовать поле с девятью кнопками, однако, эта версия может быть утомительной (согласитесь, трудно запомнить порядок, состоящий из девяти элементов).

Эта игра описана в главе 5 книги «Making Games with Python & Pygame»

5. Nibbles

Описание: червь или змея постоянно движется по экрану, управляемая игроком при помощи кнопок со стрелками. По ходу движения «змея» должна попытаться съесть яблоки, которые случайно появляются на поле. Чем больше яблок, тем длиннее становится «змея». Игра заканчивается, когда «змея» достигает края игрового поля или «кусает сама себя».

Варианты: На поле можно добавить препятствия в виде участков стен, рисунок которых будет усложняться из уровня в уровень. Можно также использовать различные виды бонусов, при «поедании» которых будет прибавляться различное количество очков. Можно ввести в игру предмет, подобрав который «змея» может укоротиться в два раза. Можно добавить движущиеся предметы, встречи с которыми «змея» должна избегать. Можно использовать два червя, которыми игрок должен управлять одновременно. Ниже представленная игра Tron является вариантом Nibbles для двух игроков.

Эта игра описана в главе 6 книги «Making Games with Python & Pygame»

6. Tetris

Описание: Фигуры из четырех блоков падают с верхней части экрана. Игрок должен складывать из них заполненные линии, вращая и перемещая их. Когда игроку удается составить полный ряд, он исчезает, а вся конструкция опускается вниз. Игра заканчивается, когда игровое поле будет заполнено доверху.

Варианты: несколько вариантов Tetris описаны в Википедии

Эта игра описана в главе 7 книги «Making Games with Python & Pygame»

7. Katamari Damacy

Описание: Оригинальная игра Katamari Damacy разработана в 3D-варианте, но создать ее 2D-версию не представляет труда. Игрок управляет небольшим предметом в мире, где находятся объекты различных размеров. Прикосновение предмета, управляемого игроком, к более мелким объектам прибавляет очки и увеличивает его в размерах, касаясь же более крупных объектов, предмет игрока сжимается. Игрок выигрывает, или проигрывает, когда его предмет достигает определенного размера (большого или маленького).

Как происходит игра в 2D Katamari можно посмотреть в ее флеш-версии

Эта игра описана в главе 8 книги «Making Games with Python & Pygame»

8. Sokoban

Описание: логическая игра-головоломка, в которой игрок передвигает ящики по лабиринту, показанному в виде плана, с целью поставить все ящики на заданные конечные позиции. Только один ящик может быть передвинут за раз, причём герой — «кладовщик» — может только толкать ящики, но не тянуть их. Эта игра требует некоторых усилий по разработке новых уровней, но их примеры можно найти в интернете.

Варианты: В игру можно добавить различные виды трюков: телепортационные плитки, конвейерные ленты, кнопки, открывающие двери или наводящие мосты, кнопки, на которые нужно установить ящик, чтобы дверь оставалась открытой, пока в нее будут выталкиваться другие ящики и т.д.

Эта игра описана в главе 9 книги «Making Games with Python & Pygame»

9. Othello

Описание: В игре используется квадратная доска размером 8 × 8 клеток и фишки белого и черного цвета. Это игра для двух игроков, которая также известна как «Риверси», и осуществляется по ее правилам.

Варианты: В игру можно добавить, например, третьего игрока со своим цветом фишек или изменить число квадратов игрового поля. Эта игра описана в главе 10 книги «Making Games with Python & Pygame»

Источник

Создаем 2D игру на Python с библиотекой Arcade

Мы продолжаем делится с вами интересными найденными вещами про питончик. Сегодня вот решили разобраться с 2D играми. Это, конечно, немного попроще, чем то, что проходят у нас на курсе «Разработчик Python», но не менее интересно это уж точно.

Python — выдающийся язык для начинающих изучать программирование. Он также идеально подходит тем, кто хочет “просто взять и сделать”, а не тратить кучу времени на шаблонный код. Arcade — библиотека Python для создания 2D игр, с низким порогом вхождения, но очень функциональная в опытных руках. В этом статье я объясню, как начать использовать Python и Arcade для программирования игр.

Я начал разрабатывать на Arcade после преподавания азов библиотеки PyGame студентам. Я очно преподавал PyGames в течение почти 10 лет, а также разработал ProgramArcadeGames.com для обучения онлайн. PyGames отличная, но в какой-то момент я понял, что устал тратить время на оправдание багов, которые никогда не фиксятся.

Меня беспокоило преподавание таких вещей, как событийный цикл, которым уже почти не пользовались. И был целый раздел, в котором я объяснял, почему y-координаты повернуты в противоположном направлении. PyGames обновлялась редко и базировалась на старой библиотеке SDL 1, а не чем-то более современном вроде OpenGL. На светлое будущее я не рассчитывал.

В моих мечтах была простая и мощная библиотека, которая бы использовала новые фичи Python 3, например, декораторы и тайп-хинтинг. Ей оказалась Arcade. Посмотрим, как начать ее использовать.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Установка

Arcade, как и многие другие пакеты, доступна на PyPi, а значит, можно установить Arcade при помощи команды pip (или pipenv). Если Python уже установлен, скорее всего можно просто открыть командную строку Windows и написать:

Для более детализированной инструкции по установке, почитайте документацию по установке Arcade.

Простой рисунок

Вы можете открыть окно и нарисовать простой рисунок всего несколькими строчками кода. В качестве примера, нарисуем смайлик, как на картинке ниже:

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Скрипт ниже показывает, как это сделать, используя команды рисования Arcade. Заметьте, что вам не обязательно знать, как использовать классы или определять функции. Программирование с быстрым визуальным фидбеком — хороший старт для тех, кто только учится.

Использование функций

Конечно, писать код в глобальном контексте — не лучший способ. К счастью, использование функций поможет улучшить ваш код. Ниже приведен пример того, как нарисовать елку в заданных координатах (x, y), используя функцию:

Для полного примера, посмотрите рисунок с функциями.

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Более опытные программисты знают, что современные программы сначала загружают графическую информацию на видеокарту, а затем просят ее отрисовать batch-файлом. Arcade это поддерживает. Индивидуальная отрисовка 10000 прямоугольников занимает 0.8 секунды. Отрисовка того же количества батником займет менее 0.001 секунды.

Класс Window

Большие программы обычно базируются на классе Window или используют декораторы. Это позволяет программисту писать код, контролирующий отрисовку, обновление и обработку входных данных пользователя. Ниже приведен шаблон для программы с Window-основой.

В классе Window есть несколько методов, которые ваши программы могут переопределять для обеспечения функциональности. Вот список тех, что используются чаще всего:

Спрайты

Спрайты — простой способ создания 2D bitmap объектов в Arcade. В нем есть методы, позволяющие с легкостью рисовать, перемещать и анимировать спрайты. Также можно использовать спрайты для отслеживания коллизий между объектами.

Создание спрайта

Создать инстанс Sprite класса Arcade очень легко. Программисту необходимо только название файла изображения, на котором будет основываться спрайт, и, опционально, число раз для увеличения или уменьшения изображения. Например:

Этот код создает спрайт, используя изображение coin_01.png. Картинка уменьшится до 20% от исходной.

Список спрайтов

Спрайты обычно организуются в списки. Они помогают упростить их управление. Спрайты в списке будут использовать OpenGl для групповой batch-отрисовки. Нижеприведенный код настраивает игру, где есть игрок и множество монет, которые игрок должен собрать. Мы используем два списка — один для игрока и один для монеток.

Мы с легкостью можем отрисовать все монетки в списке монеток:

Отслеживание коллизий спрайтов

Функция check_for_collision_with_list позволяет увидеть, если спрайт наталкивается на другой спрайт из списка. Используем ее, чтобы увидеть все монетки, с которыми пересекается спрайт игрока. Применив простой for- цикл, можно избавиться от монетки в игре и увеличить счет.

С полным примером можно ознакомиться в collect_coins.py.

Игровая физика

Во многих играх есть физика в том или ином виде. Самые простое, например, что top-down игры не позволяют игроку проходить сквозь стены. Платформеры добавляют сложности с гравитацией и движущимися платформами. Некоторые игры используют полноценные физические 2D движки с массами, трением, пружинами и тд.

Top-down игры

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Для простых игр с видом сверху программе на Arcade необходим список стен (или чего-то подобного), через которые игрок не сможет проходить. Обычно я называю это wall_list. Затем создается физический движок в установочном коде класса Window:

player_sprite получает вектор движения с двумя атрибутами change_x и change_y. Просто пример использования — перемещение игрока с помощью клавиатуры.

Несмотря на то что этот код задает скорость игрока, он его не перемещает. Метод update в классе Window вызывает physics_engine.update(), что заставит игрока двигаться, но не через стены.

Пример полностью можно посмотреть в sprite_move_walls.py.

Платформеры

какие игры можно сделать на python. Смотреть фото какие игры можно сделать на python. Смотреть картинку какие игры можно сделать на python. Картинка про какие игры можно сделать на python. Фото какие игры можно сделать на python

Переход к платформеру с видом сбоку достаточно прост. Программисту необходимо переключить физический движок на PhysicsEnginePlatformer и добавить гравитационную константу.

Для добавления тайлов и блоков, из которых будет состоять уровень, можно использовать программу вроде Tiled.

Учитесь на примере

Учиться на примере — один из лучших методов. В библиотеке Arcade есть большой список образцов программ, на которые можно ориентироваться при создании игры. Эти примеры раскрывают концепты игр, о которых спрашивали мои онлайн и оффлайн студенты в течение нескольких лет.

Запускать демки при установленной Arcade совсем не сложно. В начале программы каждого примера есть комментарий с командой, которую нужно ввести в командную строку для запуска этого примера. Например:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *