Пятница, 29 Марта 2024, 09:58

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » поясните пожалуйста почему мой код не работает
поясните пожалуйста почему мой код не работает
GMstr36rДата: Пятница, 27 Января 2023, 04:45 | Сообщение # 1
был не раз
Сейчас нет на сайте
идея такова - это должна быть катсцена, в которой персонаж достает листок бумаги, смотрит на него и после убирает.
достает и убирает листок он на разных спрайтах, в первом событии он достает его, после идет переход на событие с будильником и лист убирается
2 проблемы - 1) если у будильника время стоит больше 1 кадра - он перестает работать и анимация зацикливается
2) анимация убирания листочка просто не проигрывается, притом что переменная animation становится равна 0.
голову всю изломала.
так же если вы знаете адекватный способ создания катсцен буду очень рада почитать! спасибо заранее (код ниже)

событие *столкновение с триггером анимации*

animation=1
sprite_index=Sp_mainliston
image_speed=1

if image_index=4
{
image_speed=0
alarm[0]=1
}

событие alarm [0]

instance_destroy(Ob_trigger) //объект который триггерит начало анимации
sprite_index=Sp_mainlistoff
image_speed=1

if image_index=4
{
image_speed=0
animation=0

}


Сообщение отредактировал GMstr36r - Пятница, 27 Января 2023, 04:46
RobotZeroДата: Суббота, 28 Января 2023, 13:55 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Это все GML? Или какой-то старый синтаксис (не вижу точек с запятой)?
Этот код в двух разных скриптах находится?
Не до конца понимаю, как это все исполняется, я думаю так. Если у тебя стоят условия в скриптах, значит весь скрипт выполняется больше одного раза (или здесь исполнение кода встает на паузу и ждет выполнения условия и только потом переходит к следующей инструкции, я склоняюсь к первому варианту). Т.е. строки "событие alarm[0]" и "instance_destroy(Ob_trigger)" уже выполняются несколько раз?

Попробуйте посмотреть ссылки (что нагуглилось):
Тык-1
Тык-2

Если не помогает, воспользуйтесь поиском на форуме gcup. Здесь куча людей работали с game maker, такой вопрос точно где-то всплывал уже.
TLTДата: Суббота, 28 Января 2023, 15:05 | Сообщение # 3
Сейчас нет на сайте
Цитата RobotZero ()
Здесь куча людей работали с game maker, такой вопрос точно где-то всплывал уже.


Да, было много обсуждений - https://gcup.ru/forum/36-0-1-0-10-1-[%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86]


Дао, выраженное словами, не есть истинное Дао.
MagicHeroДата: Суббота, 28 Января 2023, 20:14 | Сообщение # 4
участник
Сейчас нет на сайте
GMstr36r, Зачем столько геморроя, ради проигрывания 2-х анимаций? Можно же сделать элементарно в степе какого нибудь обьекта.
Например:

Код

[create]
animation_scene_1=0;    // тригер анимации кат сцены 1
scene_pic_num=0;          // номер кадра анимации
scene_sprite=s_scene_1; // анимация сцены 1

[step]
swicth (animation_scene_1 ) {
   case 1: {                    // запускаем анимацию кат сцены (достает листок)
      scene_pic_num+=0.1;             // тут подставляешь нужное значение фпс анимации
      if ( scene_pic_num>=14 ) {     // если например анимация первой катсцены когда достает листок была из 15 кадров
         scene_pic_num=14;
         animation_scene_1=333;     // чтобы шла отрисовка последнего кадра с листком
         alarm[1]=180;                     // например если нужна задержка после того как достал листок и смотрит на него в алярме ставим animation_scene_1=2;
                    // Либо если идет текст то банально по его окончанию прописываем animation_scene_1=2;
      }
   } break;
   case 2: {                    // запускаем анимацию кат сцены (убирает листок)
      scene_pic_num+=0.1;
      if ( scene_pic_num>=29 ) {    // если например анимация первой катсцены когда убирает листок была из 15 кадров
         animation_scene_1=0;         // убираем отрисовку и тут же можно задать параметры что делать дальше, т.к. анимация закончилась
      }
   } break;
}
   
[draw]
if ( animation_scene_1 != 0 ) { draw_sprite(s_scene_1,scene_pic_num,x,y); }  // отрисовываешь анимацию

GMstr36rДата: Воскресенье, 29 Января 2023, 21:24 | Сообщение # 5
был не раз
Сейчас нет на сайте
MagicHero, блин спасибо большое! я просто так сказать новичок, пыталась импровизировать, потому что не нашла адекватный гайд русский на катсцены

Добавлено (29 Января 2023, 21:25)
---------------------------------------------
RobotZero, это для gms2, вроде там и не нужны ; с подавляющем числе случаев

MagicHeroДата: Понедельник, 30 Января 2023, 01:20 | Сообщение # 6
участник
Сейчас нет на сайте
GMstr36r, но они зато везде нужны поэтому лучше сразу приручать себя их ставить. Как и в условиях использовать как везде == а не просто = которые потом GMS2 переделывает в == Но всегда что то может пойти не так да и опять же нужно приручать себя писать правильно.
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » поясните пожалуйста почему мой код не работает
  • Страница 1 из 1
  • 1
Поиск:

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