Название: BodyEditor
Средства: OpenGL. OpenAL. Box2D. C++.
Сторонние программы:
Cheetah Texture Packer Упаковка атласа.
UBFG - Генератор растровых шрифтов Шрифты.
Платформа: Windows.
Команда:
Программист: Volodar
Художник: Saygon
Ссылка для скачивания - Body Editor.exe.
Подробное описание (doc файл) - readme.doc.
Скриншоты:
Представляю вашему вниманию небольшой 2D редактор физических тел. Позволяет создавать физические тела, загружать спрайты, просматривать физику, и естественно сохранять все это дело.
Для сохранения используется xml с простой структурой. Программа позволяет сохранить как каждый объект в отдельности, так и все объекты разом, в один файл. Примерная структура xml:
В данный момент позволяет создавать только статические и динамические тела. В ближайшее время будет возможность добавления связей (joints), кинематические тела, задавать телам физические свойства и параметры (трение, вес, упрогусть, ускорение, скорость и др.).
Ожидаю от данного топика:
Критика, слова похвалы, если кому то пригодится подобный редактор, предложения по улучшению юзабельности и т.д.
Редактор прежде всего необходим для создания объектов уровня, но ни как ни логики уровня, потому советы по прикручиванию скриптов и т.п. будут игнорироваться.
Управление:
Для перемещения мира ("карты") необходимо кликнуть правой кнопкой мыши по полю просмотра и двигать в необходимом направлении.
Для перемещения всего объекта (все спрайты и формы) необходимо кликнуть по пустому месту левой кнопкой мыши и двигать в необходимом направлении.
При клике правой кнопки мыши, выделяется объект под курсором (определяется по спрайту).
Лог:
Если еще не видели - http://code.google.com/p/box2d-editor/ , может пригодится как-то :)
Попытался добавить объект, получаю вот это:
Может каких текстур не хватает? Я в папке с редактором не нашёл ничего. Далее он сыпет этой ошибкой на каждый чих.
Звуки в такой программе (да ещё и неотключаемые) - это излишне.
Не хватает подсказок на кнопки (вряд ли кто читать документацию будет:)
а зачем тут физика? ну то есть, в файл сохраняются просто форма с линкой на спрайт... если использовать в своем проекте, то есть большая вероятность что физика будет отличаться от той что в редакторе... я так думаю обычно в игре и редакторе один физ движок используется, или нет?
2.384e-007x2.98e-008 :))) в чем преимущество такой записи? разбей на "x" и "y" атрибуты, ибо парсить атрибуты это извращение
и для чего эти дробные части?
было бы неплохо если бы редактор мог сам строить форму на основании спрайта
rotateangle="900" what??? 900?????
не знаю может это у меня так, но контрол поинты не догоняют мышку, даже если двигать медленно они все равно отстают.
звук события хороший, но слишком громкий
еще при удалении выделенного элемента списка, указатель должен передвигаться на предыдущий или следующий элемент
зум на колесико мыши бы повесить
нельзя развернуть окно??
и еще сохранение в JSON было бы неплохо
в целом довольно приятный интерфейс, чем-то от блендера отдает (3д редактор который)
RPG
> Не хватает подсказок на кнопки (вряд ли кто читать документацию будет:)
Это в планах, все гуи свои и на своем движке, так что будет.
> Звуки в такой программе (да ещё и неотключаемые) - это излишне.
Хочется чего то хорошего... Уменьшу громкость.
RPG
> Может каких текстур не хватает? Я в папке с редактором не нашёл ничего. Далее
> он сыпет этой ошибкой на каждый чих.
Стандартный glGetError(). Текстуры все на месте, в этом месте устанавливается только параметры отображения текстур. Уберу сообщение в лог.
fzr125
Гуи, а их тут только кнопки, Edit поля и списки, логика моя, нарисовано художником.
dmit
> а зачем тут физика?
Как бы, это прежде всего, редактор физических тел.
> 2.384e-007x2.98e-008 :))) в чем преимущество такой записи?
используются стандартные средства для представления float to char*.
В целом, запись векстора/точки разделено константой 'x'. перечисления в сохранениях точек полигона - запятой. Да, не "стандартно", наверное переопределю только на запятые (или 'x'?).
> rotateangle="900" what??? 900?????
Проверю...
> не знаю может это у меня так, но контрол поинты не догоняют мышку, даже если
> двигать медленно они все равно отстают.
Редактор, увы, зависит от фпс. Фпс пишется в лог файл, должен быть 60, если меньше, то тут проблемы движка, на котором он завязан. Сам с таким еще не сталкивался, но видать пора оптимизировать вывод графики.
> еще при удалении выделенного элемента списка, указатель должен передвигаться на
> предыдущий или следующий элемент
Это уже сомнительно.
> зум на колесико мыши бы повесить
... в планах
> нельзя развернуть окно??
Можно, а надо ли?
> и еще сохранение в JSON было бы неплохо
А чем xml не угождает? Вроде бы вполне удобный формат, всеми приемлемый. Если будет необходимо, то в будущем, возможно сделаю. Лишь бы был бы спрос.
Volodar
> А чем xml не угождает?
json типизированный и для него есть готовые стандартные парсеры... если игра на яваскрипте то JSON и парсить не надо.
Volodar
> Можно, а надо ли?
если, к примеру, разрешение экрана очень большое, то область рабочая будет очень маленькойVolodar
> Да, не "стандартно", наверное переопределю только на запятые (или 'x'?).
да, я про "x" - это дополнительно надо парсить атрибут, что совсем не есть "стандартно", например, в яве есть реализации маперов xml на класс и при такой записи, где в одном поле хранится сразу два значения в строке они работать не будут
Volodar
> > еще при удалении выделенного элемента списка, указатель должен передвигаться
> > на
> > предыдущий или следующий элемент
> Это уже сомнительно.
представь список элементов в котором тебе надо удалить 5 подряд... у тебя надо будет клацнуть на элемент в списке и кнопку удалить и так для каждого из 5, обычно достаточно просто кнопку удалить 5 раз нажать
dmit
> да, я про "x" - это дополнительно надо парсить атрибут, что совсем не есть
> "стандартно", например, в яве есть реализации маперов xml на класс и при такой
> записи, где в одном поле хранится сразу два значения в строке они работать не
> будут
Т.е. прдлагаете использовать не запись в строку, а каждое число в отдельный аттрибут/строку? Если не так, то покажите пример.dmit
> представь список элементов в котором тебе надо удалить 5 подряд...
Были такие моменты, но отказался от переключения на следующий/предыдущий элемент. Потому как это неявное поведение программы. Т.е. удалил я элемент, ни чего не выделил, но кликнув лишний раз по полю, я выделяю/перемещаю что-то другое. Уж лучше выделить явно, что удалить, либо добавить возможность выделения нескольких объектов, что также, не вижу в данной программе необходимым.
P.S. Добавил описание управления объектами и картой "мира", что забыл упомянуть сразу...
Volodar
> Т.е. прдлагаете использовать не запись в строку, а каждое число в отдельный
> аттрибут/строку
ага, каждому значению свой аттрибут
dmit
Отписал в ЛС.
Небольшие доработки:
Добавил подсказки на кнопки.
Убрал звук.
Повесил zoom на колесо мыши.
Изменение размеров окна.
Сохранение в формате JSON.
float-числа сохраняются в читабельном виде
убрал значение углов поворота спрайтов больше 360 при сохранении.
Ну и собственно обновил ссылку для скачивания.
Тема в архиве.