Смена скина в платформере
|
|
lsdstyle | Дата: Суббота, 04 Февраля 2012, 16:11 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Здравствуйте форумчане! Возникла проблема, делаю свой платформер. Решил сделать магазин, в котором можно покупать скины для гл. героя. Все скины нарисовал, уже сделал так, чтобы скин менялся. НО, когда он меняет скин, при передвежении (кроме прыжка) он меняет исходный скин.
|
|
| |
Spider_System | Дата: Суббота, 04 Февраля 2012, 16:16 | Сообщение # 2 |
Злой прогер-пьяница
Сейчас нет на сайте
| lsdstyle, о, боже. У тебя что ли анимы передвижения все в разных спрайтах?
Маньяк. Убийца. Социопат. Анархист. Мой проект: Spider System Исходники Spider System
|
|
| |
Palmar | Дата: Суббота, 04 Февраля 2012, 16:16 | Сообщение # 3 |
Pλlmar Games
Сейчас нет на сайте
| Сделай для каждого скина свою анимацию бега , прыжка , и т.д.
|
|
| |
lsdstyle | Дата: Суббота, 04 Февраля 2012, 16:20 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| У меня всё это сделано! Я же говорю, я перерисовал 8 скинов. и у них есть анимации, но я не знаю что дальше делать. Я сделал чекпоинт, на него заходиш и меняеш цвет, с него уходиш и цвет исходный встаёт. НО, у гл. героя стандартный скин по началу стоит, и это конфликтует с другими скинами. Мне надо сделать так, чтобы стандартный скин убрать из А и D key, и тогда всё будет работать. Но блин, я не знаю как сделать чтобы спрайты ставить других скинов сразу. Я просто уже запутался в этом.. Я еле понимаю что я пишу щас D:
|
|
| |
LunarPixel | Дата: Суббота, 04 Февраля 2012, 16:31 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Ну так при нажатии на A и D у тебя ведь прописана смена спрайта, вот он у тебя и меняется на тот, который там указан. Создай переменную skin=0 и там, где у тебя прописана смена спрайтов поставь условие: if skin=0 sprite_index=sprite1 if skin=1 sprite_index=sprite1 и т.д. Лучше через switch
Таким образом для смены скина, нужно изменить значение переменной skin.
Сообщение отредактировал LunarPixel - Суббота, 04 Февраля 2012, 16:31 |
|
| |
gin101 | Дата: Суббота, 04 Февраля 2012, 18:06 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Quote (LunarPixel) if skin=0 sprite_index=sprite1 if skin=1 sprite_index=sprite1 и т.д. Лучше через switch
а еще лучше сделать массив например: sk=0 skin[0,0]=s_walk_left skin[0,1]=s_walk_right skin[0,2]=s_jump
skin[1,0]=s_walk_left_red skin[1,1]=s_walk_right_red skin[1,2]=s_jump_red
if keyboard_check(vk_left) sprite_index=skin[sk,0] if keyboard_check(vk_right) sprite_index=skin[sk,1] if keyboard_check(vk_up) sprite_index=skin[sk,2]
|
|
| |
lsdstyle | Дата: Понедельник, 06 Февраля 2012, 09:32 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Так, мне ... Я думаю, больше вариант от qin101 понравился... У меня сис-ма управления и снов взята с "Желейки" Получаеться, sk=0 это что? skin[0,0]s_walk_left <- первый ноль что означает?
|
|
| |
Robin-Locksley | Дата: Понедельник, 06 Февраля 2012, 09:54 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Quote (lsdstyle) sk=0 это что? Это номер скина по идее. Изменяя переменную с 0 на 1 мы переключаемся между двумя скинами. Quote (lsdstyle) skin[0,0]s_walk_left <- первый ноль что означает? В двумерном массиве можно сказать что первый индекс это номер столбца, второй - номер стоки, если представлять его как таблицу. В твоем случае это порядковый номер скина. Первый будет 0, второй - 1 и т.д.
GameMaker Easy Menu
|
|
| |
gin101 | Дата: Понедельник, 06 Февраля 2012, 10:13 | Сообщение # 9 |
частый гость
Сейчас нет на сайте
| sk это переменная обозначает какой скин выбран а первый ноль это номер скина вот пример чтобы понятнее было http://rghost.ru/36366611
Добавлено (06.02.2012, 10:13) --------------------------------------------- меня уже опередили пока пример делал
Сообщение отредактировал gin101 - Понедельник, 06 Февраля 2012, 10:16 |
|
| |
LunarPixel | Дата: Понедельник, 06 Февраля 2012, 10:16 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Можно ещё сделать так: Переименовать все спрайты в разных скинах по следующему принципу s_walk_left1, s_walk_left2, s_walk_left3 и т.д. где число - это номер скина. Потом завести переменную skin='1'
Ну а везде, где меняется спрайт, написать: Code execute_string('sprite_index=s_walk_left'+s)
Ну а потом просто менять переменную skin на нужное значение. По коду в разы меньше получается.
|
|
| |
|
lsdstyle | Дата: Среда, 08 Февраля 2012, 16:10 | Сообщение # 12 |
частый гость
Сейчас нет на сайте
| Спасибо посоны
Добавлено (08.02.2012, 16:10) --------------------------------------------- Слушайте, что-то у меня не получается \: Делал по примеру qin101, я сделал всё как надо, сделал отдельный обьект, у него создал: При столкновении с Игроком делаем sk=1 Пробовал менять, сделал по примеру. У меня щас получается так: Управление полностью с Желейки. А для смены цвета я сделал так: Создал спрайт опред. цвета, у него написал в Create: sk=1 ( пробовал менять ) Запускаю игру, бегу на этот куб, запрыгиваю, цвет меняет, убегаю, цвет скидывается \: Добавлено (08.02.2012, 16:12) А можно сделать по принцыпу смены цвета просто? Ну например, добовляеш Color Sprite и цвет который надо, и всё, у тебя он остаёться. Можно сделать так-же только со сменой спрайта?
Сообщение отредактировал lsdstyle - Среда, 08 Февраля 2012, 16:13 |
|
| |