Среда, 18 Декабря 2024, 11:09

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Тригер 2клавишы
ManitikylДата: Пятница, 06 Января 2012, 01:30 | Сообщение # 1
был не раз
Сейчас нет на сайте
нужнен тригер для нажатия двух кнопок, и вообще где есть учебник по тригерам что почитать и освоить?
Code
{
   return keyboard_check('W') && keyboard_check('D');
}


написал вот так, но при старте игры это дейсвие автоматом выполняется


Сообщение отредактировал Manitikyl - Пятница, 06 Января 2012, 01:30
Robin-LocksleyДата: Пятница, 06 Января 2012, 03:03 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Quote (Manitikyl)
написал вот так, но при старте игры это дейсвие автоматом выполняется

Строку нужно переводить в клавиатурный код.
Code
{
    return keyboard_check(ord('W')) && keyboard_check(ord('D'));
}

Добавлено (06.01.2012, 03:03)
---------------------------------------------
Но событие будет выполняться каждый шаг пока нажаты клавиши.
Для вызова триггера только в одном шаге используй keyboard_check_pressed().


GameMaker Easy Menu
ManitikylДата: Пятница, 06 Января 2012, 03:17 | Сообщение # 3
был не раз
Сейчас нет на сайте
а во, заработало, а есть ли где нибуть учебник чтоль по тригерам, как синтаксис посмотреть?
Robin-LocksleyДата: Пятница, 06 Января 2012, 12:27 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
События триггеров пишутся точно так же как и любой другой гмл код. Подробнее чем в справке уже некуда.

Добавлено (06.01.2012, 12:27)
---------------------------------------------
Такс... на работать скучно, пока есть время пройдусь по триггерам.

Триггер по сути то же событие, что и любое другое. Единственная разница - возможность указать причину, по которой событие должно сработать. Это представляет собой обычный гмл код, со всеми вытекающими. Единственная особенность это обязательный оператор return. Большинство функций и скриптов в гмл возвращают результат выполнения. Это может быть буль или какое нибудь значение, но все это обьединяет как раз оператор return.
Чтобы событие сработало должна вернуться истина.

Пример из справки:

Code
{
  var n;
  n = instance_number(obj_ball);
  return (n >= 3) && (n <= 5);
}


Разберем немножко код для лучшего понимания.
var n - готовим локальную переменную для временного сравнения результатов выполнения скрипта.
n = instance_number(obj_ball) - ну тут тоже все ясно. Считаем количество шаров в комнате и пишем результат в переменную. То есть функция instance_number() возвращает нам результат своего выполнения.
return (n >= 3) && (n <= 5) - а вот та строчка, которая нас на самом деле интересует. После оператора мы выполняем сравнение n с заданным диапазоном. Если оба выражения истинны - оператор вернет истинну и сработает событие-триггер. Если же какое то из них ложно - событие вообще не срабоает. Основное правило тут одно, возвращать мы должны только булевые, иначе триггер не сработает или сработает неправильно.
В событие триггера можно писать и более сложные скрипты, главное чтобы в результате их выполнения возвращались true/false.

Таким образом мы видим что обязательным для события триггера есть только оператор return. Если почитать немного справку по этому оператору, можно выяснить и еще одну его особенность. Выполнение скрипта заканчивается после оператора return, поэтому ни в коем случае не ставьте его в середине или, не дай бог, начале скрипта.

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


GameMaker Easy Menu
  • Страница 1 из 1
  • 1
Поиск:

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