Введение Я думаю, что многие программисты создали или пытались создать свою собственную игру.
Обычно процесс доходит до того, что большая часть всего написана и нужно начинать строить уровни, игровые сцены и т.д. Если вы используете готовые решения, «из коробки» — например Unity, то там будет Нет проблем.
Но могут возникнуть проблемы с лицензированием, поддержкой разных платформ — возможно, кто-то захочет попробовать сделать что-то под Linux/Mac, где не всегда можно найти правильное решение.
А начинающим гейммейкерам интереснее использовать что-то свое, простое в разработке и построении функционала, адаптированное под себя.
Для себя я нашел решение в виде написания своего небольшого плагина для Inkscape. В свободное время мне интересно повозиться с собственной библиотекой, написанной на AS3 - да-да, flash :D. Библиотека существует в виде обертки для физического движка Box2D, использует кучу полезных вещей — собственный конечный автомат, небольшие обертки для твиннеров для программной анимации и систему частиц.
В принципе, вы можете сделать что-то игровое, маленькое и стильное на свой вкус.
Поскольку я люблю OpenSource и удобство, я программирую в FlashDevelop. Графического редактора, естественно, там нет. И вряд ли это сильно поможет в создании объектов со своими параметрами.
Я вспомнил Inkscape, его модульность, плагины и сам SVG — сам XML, простой в разборе.
Я решил написать плагин для Inkscape. Проблемы Начав искать информацию «о», я нашел совсем немного, целый пример «Плагина Hello World», а все остальное было плохо структурировано и на английском языке.
И Python как язык сценариев для плагинов.
Функциональный и нетипизированный, ужасный.
Вроде на Ruby можно писать плагины, но я не пробовал.
Но проанализировав пример и посмотрев готовые модули, установленные с помощью Inkscape, я понял, что не всё так плохо.
Вам просто нужно найти правильные методы работы со слоями и фигурами, определить, что именно вы хотите сделать, и запрограммировать это.
Далее в приложении парсим готовый SVG/XML — благо во всех языках есть отличные инструменты для таких целей, подаем куда нужно — у меня есть специальный конструктор, и готово.
Структура готового SVG Я решил выделить каждый уровень как отдельный слой в SVG, об этом важно подумать при создании плагина.
Миры физических объектов могут иметь круглую, квадратную и сложную форму (выпуклый многоугольник или несколько любых многоугольников через несколько фигур) — требования Box2D. И конечно куча параметров - как физических, так и личных.
Объекты ведут себя как обычно для SVG, нормально отображаются в редакторе и имеют кучу кастомных тегов и параметров.
Удобен для выделения разных типов тел – динамических, статических, выделения их разными цветами.
Пока что я реализовал только поддержку круглых и квадратных тел.
Важно: операции перемещения и вращения в Inkscape не меняют напрямую параметры тел в окончательном SVG. Все проходит через матрицы трансформации матрица для вращения и свойств переводить двигать телом.
Естественно, при разборе таких данных нужно немного применить матричную математику.
Структура плагина Плагин в Inkscape состоит из двух частей, двух файлов — например my_super_plugin.py И my_super_plugin.inx .
Файл my_super_plugin.inx существует в виде набора специальных XML-тегов, что-то похожее на bean-компоненты в Java. В нем указывается графический интерфейс окна плагина, параметры ввода данных, типы кнопок и т.д. На скриншоте ниже показано «моё детище».
Файл my_super_plugin.py указывает реальный скрипт для работы с SVG-файлом.
Скрипт принимает его на вход, выполняет необходимые действия и отправляет на выходе, Inkscape все рисует. Быстро и красиво.
Насколько я понимаю, в скрипте код и Inkscape связаны через модуль inkex.py. На страницах официальной документации редактора описаны необходимые типы данных для my_super_plugin.py И my_super_plugin.inx (ссылки ниже).
ИНКС Выкладываю код моего .
inx-файла: Код
Теги: #Inkscape #плагин #as3 #as3 #python #xml #ActionScript #flash #box2d #редактор уровней #редактор #разработка игр #программирование игр #программирование #Adobe Flash #разработка игр<inkscape-extension>
-
Плеер Arduino Zx Spectrum Ay
19 Oct, 24 -
Отзывы Команды, 360 И 14 Февраля
19 Oct, 24 -
Возможности Mongodb
19 Oct, 24 -
Тестирование Xunit В Teamcity
19 Oct, 24 -
Netboot.me — Всё Скачаем!
19 Oct, 24 -
Мегафон Внедрил Edge В Москве И Области
19 Oct, 24