Понедельник, 25 Ноября 2024, 04:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Смена скина в платформере
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)
---------------------------------------------
меня уже опередили пока пример делал biggrin


Сообщение отредактировал 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 на нужное значение. По коду в разы меньше получается. smile


Robin-LocksleyДата: Понедельник, 06 Февраля 2012, 12:23 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Индусский код эволюционирует в рамках самого себя практически бесконечно biggrin biggrin biggrin

GameMaker Easy Menu
lsdstyleДата: Среда, 08 Февраля 2012, 16:10 | Сообщение # 12
частый гость
Сейчас нет на сайте
Спасибо посоны happy

Добавлено (08.02.2012, 16:10)
---------------------------------------------
Слушайте, что-то у меня не получается \:
Делал по примеру qin101, я сделал всё как надо, сделал отдельный обьект, у него создал: При столкновении с Игроком делаем sk=1
Пробовал менять, сделал по примеру.
У меня щас получается так:
Управление полностью с Желейки.
А для смены цвета я сделал так:
Создал спрайт опред. цвета, у него написал в Create: sk=1 ( пробовал менять )
Запускаю игру, бегу на этот куб, запрыгиваю, цвет меняет, убегаю, цвет скидывается \:
Добавлено (08.02.2012, 16:12)
А можно сделать по принцыпу смены цвета просто?
Ну например, добовляеш Color Sprite и цвет который надо, и всё, у тебя он остаёться.
Можно сделать так-же только со сменой спрайта?


Сообщение отредактировал lsdstyle - Среда, 08 Февраля 2012, 16:13
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг