Всем привет! Сегодня мы разберемся - как же все-таки работать с таймерами в GM? Дело в том, что многие пользователи GM не умеют этого делать. Однако, все очень просто.
Существует, по-меньшей мере, 2 элементарных способа:
1. Timeline.
2. Alarm
Разберем первый. Для работы таймера нам надо, по крайней мере, включить таймлайн (линию времени). Делается это следующим образом (для одноразового совершения пишем в create):
Код
timeline_index=time//...где time - название таймлайна.
timeline_running=1//...где timeline_running - переменная для включения таймлайна по прописанному выше индексу.
Создаем таймлайн, называем его time. Жмем кнопку "Добавить". Допустим, мы хотим совершения действия через 3 секунды. Смотрим нашу скорость комнаты, умножаем ее на 3 и получившееся значение записываем ввышедшее окно. Допустим, мы хотим сменить спрайт через 3 секунды. Переносим в создавшееся событие таймлайна кнопку Execute Code, пишем:
Код
sprite_index=your_sprite//...где sprite_index - индекс (название) спрайта объекта, а your_sprite - название вашего спрайта.
Если хотим позже снова совершить смену спрайта - допишем:
Код
timeline_index=time//...где time - название таймлайна.
timeline_running=1//...где timeline_running - переменная для включения таймлайна по прописанному выше индексу.
Готово. В общем, это был первый способ. Все достаточно просто, но второй способ еще проще.
Рассмотрим его.
Возьмем ту же "миссию" - вы хотите менять спрайт каждые 3 секунды. Тогда в create:
Код
alarm[0]=room_speed*3//...где alarm[0] - действие "Сигнал 0", а room_speed - скорость комнаты, т.е. 1 секунда.
В Сигнал 0:
Код
sprite_index=your_sprite//...где sprite_index - индекс (название) спрайта объекта, а your_sprite - название вашего спрайта.
alarm[0]=room_speed*3//...где alarm[0] - действие "Сигнал 0", а room_speed - скорость комнаты, т.е. 1 секунда.
Грубо говоря, мы сделали все тоже самое, не прибегая ни к чему, кроме объектов. Как по мне, второй способ удобнее, но какой использовать - решать вам.
У меня все, спасибо за внимание.