| Geon FX (редактор частиц) |
|
NeutralD
| Дата: Четверг, 26.03.2009, 19:03 | Сообщение # 1 |
Хрен заткнешь
Группа: Высший Советник
Сообщений: 403
Статус: Offline
|
Рабочее название: Geon FX Скачать Исходник|Экзешник Как использовать? Вы сделали частицы с помощью редактора и сохранили их в папке с игрой. Теперь грузим файл. Открываем ваш проект, куда нужно вставить частицы. Выбираем Scripts > Import Scripts... Теперь везде где надо используем строку: тип_частицы = LoadParticle('Путь к файлы частицы'); //в переменной "тип_частицы" будет хранится готовый тип, который можно использовать в любой функций где требуется тип.
Известные проблемы: В "старой" версии нет возможности загрузки .png изображений в качестве спрайта.
Quote (28.03.2009) Полным ходом ведется работа над Техническим заданием и разработкой Интерфейса программы. Готово полное описание функций GM по работе с частицами. Составлен глоссарий для тех, кому сложно понять устройство системы частиц.
Quote (27.03.2009) Начинаем разработку редактор частиц. Работаем с дизайнером над интерфейсом программы. WinAPI решено не использовать. В разработке участвуют: WertyXBOCT, Ang3L, V1RuS, splean ПРИСОЕДИНЯЙСЯ, ТЫ НАМ НУЖЕН!
Анализ конкурентов: на сегодняшний день мною обнаружено два редактор частиц для Game Maker 6.1+: Particle Designer 2.3 и Lithium Particle Designer 2.0 .
Particle Designer 2.3 (сокращенно PD) -- более продвинутая по сравнению с Lithium Particle Designer (сокращенно LPD) программа.
Основная проблема PD -- убогий код. Программа тормозит, некорректно работает с разрешением, меньшим, чем 1024х768, и часто неверно экспортит системы партиклов. Кроме того, в программе есть искусственное ограничение на количество табов, что не позволяет использовать желаемое количество эмиттеров (3 -- максимум). Каждая форма программы использует отдельный объект, что сказывается на производительности не в лучшую сторону. Поле ввода кода тоже весьма ограничено, поскольку написано средствами ГМ. Последнее обновление Particle Designer 2.3 -- от 27.07.2008 Программа больше не поддерживается автором.
LPD гораздо проще и удобнее, чем PD. Правильным решением стало создание отдельных окошек для ввода параметров системы. Но программа, конечно, несопоставима по функциональности с PD. Так, отсутствуют возможность создавать эмиттеры, прописывать свой код. Невозможно назначить спрайт для партикла. Странный формат экспорта. В итоге: приложение работает само в себе. Пригодно только для игрулек с красивостями. Получить результат и внедрить в проект -- не представляется возможным.
Предложение: ввиду того, что оба существующих редактора частиц написаны левой пяткой -- создать собственный редактор, задействовав все соотв-щие функции GM.
Команда: Inok-CG, NeutralD
Просьба отписываться только по теме; не флудить; читать внимательно; думать перед тем, как задать вопрос.
|
| |
| | |
|
SG_9x
| Дата: Среда, 20.07.2011, 22:11 | Сообщение # 201 |
Молчун
Группа: Пользователь
Сообщений: 5
Статус: Offline
|
Quote (Ang3L) Эхх, в ближайшее время. Ориентировочно, сегодня-завтра. Да ничего страшного, никто же вас не торопит - хоть после-после завтра. ) Quote (Ang3L) Семейные проблемы... Тем более.. Quote (Ang3L) Нетрудно, верно? Так что каких-то явных проблем я не вижу. Конечно, это элементарно. ) Собственно эта "простота" и отбрасывает необходимость внедрения в редактор поддержку этих двух функций - меньше будет (а то и совсем не будет) проблем с сохранением, экспортом и тд.. Можете даже без особых инструкций, так как я думаю всё и так предельно ясно - максимум пару комментариев в скриптах, что там да как =) Большое спасибо.
|
| |
| | |
|
Ang3L
| Дата: Четверг, 21.07.2011, 06:14 | Сообщение # 202 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2677
Статус: Offline
|
Короче, пробуем. Обновил шапку, навсякий. Как использовать? Вы сделали частицы с помощью редактора и сохранили их в папке с игрой. Теперь грузим файл. Открываем ваш проект, куда нужно вставить частицы. Выбираем Scripts > Import Scripts... Теперь везде где надо используем строку: тип_частицы = LoadParticle('Путь к файлы частицы'); //в переменной "тип_частицы" будет хранится готовый тип, который можно использовать в любой функций где требуется тип.
Первые 3 шага делаем всегда. Последний делается по вкусу, я напишу как сделал я.
Я создал объект particles. В нём в create, я загружаю все нужные мне частицы, т.к. у меня их сейчас мало, то я делаю вручную. Т.е.: Code //создаем систему частиц ps = part_system_create();
//pt - particle type pt_fog = LoadParticle('C:\game\fog.par'); pt_fire = LoadParticle('C:\game\fire.par'); //...
Далее в объекте в котором мне нужно в create, создаем эмиттер и постоянную переменную, загружая в неё нужную частицу. Выглядит это так: Code ps = particles.ps; pe = part_emitter_create(ps);
pe_dregion = 8; part_emitter_region(ps, pe, x - pe_dregion, x + pe_dregion, y - pe_dregion, y + pe_dregion, ps_shape_diamond, ps_distr_gaussian);
pt_fire = particles.pt_fire;
Всё, объект готов к употреблению, допустим в Step пихаем: Code part_emitter_burst(ps, pe, pt_fire, 5); Не могу сказать, есть ли смысл размножать локальные ps, pt_ и т.д. Здесь уже экспериментируйте сами.
Сама идея такова. Есть контроллер particles, который отвечает за частицы, он создает систему частиц, он же загружает частицы из вне, он же может их удалять по требованию (тут уже программист сам решает насколько гибкую он хочет сделать ситуацию) - он же выступает как глобальное хранилище частиц. Далее, объект в котором должны быть частицы берет из этого "глобального" хранилища и перетаскивает себе тип частицы ему нужный и ссылочку на систему частиц. Теперь объект готов к использованию.
Это стандартное использование, не буду расписывать другие ситуаций, если программист знает чего хочет этого ему будет вполне достаточно.
P.S.: Загрузку частиц можно сделать автоматической. Алгоритм прост: Смотрим все файлы подряд, пока они не закончатся. Загружаем в part_type тип частиц соответствующий файлу. Вырезаем из полного пути имя файла без расширения. И потом выполняем примерно такой код: Code execute_string('particles.pt_' + name + '=' + string(part_type)); //где name - имя файла без расширения, part_type - тип частиц предварительно загруженный нами. Возможно, execute_string нужно будет немного подправить, т.к. я писал ща с моей автоматической системы загрузки аудио файлов.
Альтернативу execute_string можно найти в ассоциативном массиве (простыми словами в map'е). В ключ записывать строку имени файла, а в значение тип частицы. А при необходимости вернуть тип частицы, пихаем массиву название файла, он вам вернет частицу.
Это все, отдыхайте. Если возникнут трудности, то обращайтесь, помогу. Писать пример не стал, т.к. заморачиватся из-за 5 строк кода - геморное занятие.
Blogpost
|
| |
| | |
|
SG_9x
| Дата: Вторник, 26.07.2011, 00:33 | Сообщение # 203 |
Молчун
Группа: Пользователь
Сообщений: 5
Статус: Offline
|
Скачал, попробовал - всё отлично работает! Очень удобно, я скажу. =) Спасибо вам огромное, теперь работа над моими деяниями наконец начнётся! Но ещё один небольшой вопрос - что насчёт той самой "обновлённой" вашей версии? С исправленными багами и так далее? Её вы вроде не выложили. ) В "старой" версии нет возможности загрузки .png изображений в качестве спрайта. Так-же если переместить что-либо в списке партиклов, то при следующем запуске бинарный файл не открывается программой, выдаёт ошибку. Ещё раз спасибо за ваши труды, вышло в разы лучше чем зарубежные варианты!
|
| |
| | |
|
Ang3L
| Дата: Вторник, 26.07.2011, 01:44 | Сообщение # 204 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2677
Статус: Offline
|
Quote (SG_9x) Но ещё один небольшой вопрос - что насчёт той самой "обновлённой" вашей версии? Чёт как-то не до неё было, а я увидел что это последняя хорошо рабочая версия, вот и не стал дальше её колупать. Quote (SG_9x) Ещё раз спасибо за ваши труды, вышло в разы лучше чем зарубежные варианты! Ну ты походу единственный пользователь, которому программа стала полезна, кроме меня, поэтому первый в очереди на обновление функционала. Quote (SG_9x) В "старой" версии нет возможности загрузки .png изображений в качестве спрайта. Ага, посмотрю. Quote (SG_9x) Так-же если переместить что-либо в списке партиклов, то при следующем запуске бинарный файл не открывается программой, выдаёт ошибку. Куда переместить? Просто я вложил только удаление, т.е. перемещение вправо. Расскажешь поподробнее, постараюсь исправить.
Blogpost
|
| |
| |
|
|