Пятница, 19 Апреля 2024, 15:54

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Немного о таймерах
Немного о таймерах
HiNuToДата: Среда, 31 Декабря 2014, 13:46 | Сообщение # 1
частый гость
Сейчас нет на сайте
Всем привет! Сегодня мы разберемся - как же все-таки работать с таймерами в 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 секунда.


Грубо говоря, мы сделали все тоже самое, не прибегая ни к чему, кроме объектов. Как по мне, второй способ удобнее, но какой использовать - решать вам.

У меня все, спасибо за внимание. wink


И даже если без тебя я слаб,
Сейчас для меня будто оргазм состояние зла.
kukinillo777Дата: Среда, 31 Декабря 2014, 13:47 | Сообщение # 2
частый гость
Сейчас нет на сайте
Что же, новичкам будет полезно. Молодец.

Все свои желания можно воплотить в своей игре, если руки из нужного места растут. А если и мозга работает, то и в реальности все сделаешь :)
OpenGOOДата: Среда, 31 Декабря 2014, 17:06 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Лучше было бы в первую очередь объяснить как работать Alarm, поскольку он часто используемый вид реализация таймера, а уже в конце объяснять Timeline. К тому же тема с Timeline не до конца раскрыта, например как создать Timeline через код.

Сперва создаем скрипт, например с именем scr_Change_Sprite
Цитата HiNuTo ()
sprite_index=your_sprite;//...где sprite_index - индекс (название) спрайта объекта, а your_sprite - название вашего спрайта.


Затем создаем timeline
Код

global.time = timeline_add(); // Создаем новый пустой timeline и сохраняем его индекс в переменной global.time


И в конце добавляем наш скрипт в timeline
Код
var i = room_speed * 3; // 3 секунды
timeline_moment_add_script(global.time, i, scr_Change_Sprite); // Добавляем скрипт scr_Change_Sprite в timline и задаем время вызова скрипта 3 секунды


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
kukinillo777Дата: Среда, 31 Декабря 2014, 17:45 | Сообщение # 4
частый гость
Сейчас нет на сайте
И все же не стоит не дооценивать статью.

Все свои желания можно воплотить в своей игре, если руки из нужного места растут. А если и мозга работает, то и в реальности все сделаешь :)
AnthemДата: Среда, 31 Декабря 2014, 18:48 | Сообщение # 5
Д'Артаньян
Сейчас нет на сайте
И все же лучше недооценить, т.к. о принципах и механизмах работы данных элементов ничего не рассказано. Да и объем совсем не тянет на статью. Так, заметка

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Немного о таймерах
  • Страница 1 из 1
  • 1
Поиск:

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