Выбор "скина" плеера

техническая поддержка по Construct 2

Сообщение Выбор "скина" плеера
» 11 май 2018, 17:29

Всем привет!

Нужно реализовать возможность выбора "скина" т.е. набора анимаций персонажа.

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

Семья нужна для создания общего управления и событий проигрывания анимаций.
Т.к. каждый скин имеет набор анимаций (run, stand...) Поэтому засовывать все эти анимации в один спрайт (аля ran1, run2) и потом создавать событие для каждой - извращение.

Исходя из всего этого у меня возникает вопрос: насколько рационально данное решение и какие варианты есть еще?
Аватара пользователя

Участник
Сообщений: 160
Я тут с 22 дек 2013
Откуда: КБР
Двиг: Construct 2
VK: barmaleyp
Репутация 26 [ ? ]

Сообщение Выбор "скина" плеера
» 11 май 2018, 18:38

Intelix, тоже думаю о семье.
Опишу, как выглядит моё решение в данный момент, для анимации на восемь направлений.
Персонаж стоит на базе и имеет один кадр анимации (это рекомендация Эшли, которую он обосновал просто - новый кадр анимации - это уже другой объект, поэтому, для стабильной работы поведений и механик песонажем должен быть прямоугольный спрайт с одним кадром). Соответственно, к этому невидимому спрайту крепится объект с анимациями. В данный момент это один объект, к разным скинам которого добавляется буква. Типа walk1 и walkE1 - это анимация ходьбы на восток в двух разных скинах. Вызов анимации происходит из одного события, set animation "walk" &skin &direction. Т.е. код не изменился, просто, по сравнению с моно-персонажем добавилась переменная skin, которая во втором случае равна E.

В принципе, меня эта система устраивала, но сейчас я стал думать об оптимизации загрузки, подгрузки скинов по мере прохождения и т.д. Создание семьи объектов-скинов в таком случае логично. Я не вижу более оптимального решения.

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

Игродел
Сообщений: 1302
Я тут с 31 май 2017
Репутация 250 [ ? ]

Сообщение Выбор "скина" плеера
» 11 май 2018, 18:48

Intelix, Плеера? Типа Winamp? :biggrin:
Касаемо персонажей в игре: Самый лёгкий вариант так называемый Color Replacer - простое изменение конкретных цветов на спрайте путём прикрепления к спрайту эффекта - https://www.scirra.com/forum/effect-16- ... er_t184628. Хорошо подойдёт к играм в стилистике PixelArt.
Второй вариант более трудоёмкий - это "нарезка" персонажа на части, прикрепление частей в нужные места и ручной контроль анимации (т.е изменение кадра остальных частей относительно основной). Хотя в этом случае дорисовывать нужные части всё равно придётся...
Аватара пользователя

Игродел
Сообщений: 965
Я тут с 12 окт 2013
Репутация 256 [ ? ]

Сообщение Выбор "скина" плеера
» 11 май 2018, 20:06

Intelix писал(а):Семья нужна для создания общего управления и событий проигрывания анимаций.
Т.к. каждый скин имеет набор анимаций (run, stand...) Поэтому засовывать все эти анимации в один спрайт (аля ran1, run2) и потом создавать событие для каждой - извращение.

Я думаю, что это вовсе не извращение. Разделить анимации по папкам (подпапкам), задать имена, к которым можно легко обращаться через переменные (к примеру run_red, run_green и т.д.). Очень удобно когда все спрайты в одном месте, настройка коллизии и imagepoint легче, при компиляции все спрайты "не разбросаны". Все-таки семьи, имхо, нужны для взаимной работы "разных" спрайтов по определенному алгоритму, а у вас, я так понимаю, они "одинаковые", а события громоздить не нужно, достаточно создать переменную и функцию для работы с ней.
Аватара пользователя

Reficul
Сообщений: 792
Я тут с 02 ноя 2017
Репутация 283 [ ? ]



Вернуться в Вопрос-Ответ по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх