Geon FX (редактор частиц) (11) - В разработке - Разработка игр на Game Maker (Advanced Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 11 из 11«1291011
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » В разработке » Geon FX (редактор частиц) (Редактор частиц для GM 6.1 +)
Geon FX (редактор частиц)
NeutralD Дата: Четверг, 26.03.2009, 19:03 | Сообщение # 1
Хрен заткнешь
Группа: Высший Советник
Сообщений: 403
Статус: Offline
Рабочее название: Geon FX

Скачать Исходник|Экзешник

Как использовать?
Вы сделали частицы с помощью редактора и сохранили их в папке с игрой.
  • Теперь грузим файл.
  • Открываем ваш проект, куда нужно вставить частицы.
  • Выбираем Scripts > Import Scripts...
  • Теперь везде где надо используем строку: тип_частицы = LoadParticle('Путь к файлы частицы'); //в переменной "тип_частицы" будет хранится готовый тип, который можно использовать в любой функций где требуется тип.

    Известные проблемы:
  • В "старой" версии нет возможности загрузки .png изображений в качестве спрайта.

    Quote (09.04.2009)
    Готова большая часть интерфейса и Теория Частиц на русском. Внимательно читаем, разглядываем картинку интерфейса. Задаем вопросы. Разрабатываем схему, по которой будем реализовывать интерфейс. Все уточнения -- в ответах на ваши вопросы.

    Интерфейс Редактора Частиц:
    http://indy.forever.kz/gm/gm_pad/pd.png

    Теория Частиц (на русском):
    http://indy.forever.kz/gm/gm_pad/theory.htm


    Quote (28.03.2009)
    Полным ходом ведется работа над Техническим заданием и разработкой Интерфейса программы.
    Готово полное описание функций GM по работе с частицами. Составлен глоссарий для тех, кому сложно понять устройство системы частиц.


    Quote (27.03.2009)
    Начинаем разработку редактор частиц. Работаем с дизайнером над интерфейсом программы. WinAPI решено не использовать.
    В разработке участвуют: WertyXBOCT, Ang3L, V1RuS, splean
    ПРИСОЕДИНЯЙСЯ, ТЫ НАМ НУЖЕН!


    Quote (Полезные ссылки)
    Справка по частицам Game Maker 7.0 (английский):
    http://gamemaker.info/en/manual/412_00_particles

    Крупнейший портал по партиклам в ГМ:
    http://www.gmparticles.com/


    Анализ конкурентов: на сегодняшний день мною обнаружено два редактор частиц для 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

    Просьба отписываться только по теме; не флудить; читать внимательно; думать перед тем, как задать вопрос.
  • Прикрепления: 3883880.rar(1079Kb) · 0927916.rar(34Kb) · LoadParticles.gml(7Kb)
     
    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 изображений в качестве спрайта. Так-же если переместить что-либо в списке партиклов, то при следующем запуске бинарный файл не открывается программой, выдаёт ошибку.

    Ещё раз спасибо за ваши труды, вышло в разы лучше чем зарубежные варианты! biggrin
     
    Ang3L Дата: Вторник, 26.07.2011, 01:44 | Сообщение # 204
    Каждый 5й пост мой
    Группа: Админы
    Сообщений: 2677
    Статус: Offline
    Quote (SG_9x)
    Но ещё один небольшой вопрос - что насчёт той самой "обновлённой" вашей версии?

    Чёт как-то не до неё было, а я увидел что это последняя хорошо рабочая версия, вот и не стал дальше её колупать.

    Quote (SG_9x)
    Ещё раз спасибо за ваши труды, вышло в разы лучше чем зарубежные варианты!

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

    Quote (SG_9x)
    В "старой" версии нет возможности загрузки .png изображений в качестве спрайта.

    Ага, посмотрю.

    Quote (SG_9x)
    Так-же если переместить что-либо в списке партиклов, то при следующем запуске бинарный файл не открывается программой, выдаёт ошибку.

    Куда переместить? Просто я вложил только удаление, т.е. перемещение вправо. Расскажешь поподробнее, постараюсь исправить.


    Blogpost
     
    Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » В разработке » Geon FX (редактор частиц) (Редактор частиц для GM 6.1 +)
    Страница 11 из 11«1291011
    Поиск:



    Сообщество Gmaker.SU 2005-2012
    Используются технологии uCoz
    Простой вход