Содержание 

Cправка Game Maker
Что нового
Использование Game Maker
Продвинутое использование
Совершенствование вашей игры
Game Maker Language (GML)
Описание языка GML
Функции вычисления
Игровой процесс
Перемещение
Пути
Планирование движения
Проверка столкновений
Экземпляры
Деактивация экземпляров
Синхронизация
Комнаты
Игровой счет
Имитация событий
Дополнительные переменные и функции
Взаимодействие с игроком
Игровая графика
Звук и музыка
Заставки, таблицы рекордов и всплывающие окна
Ресурсы
Изменение ресурсов
Файлы, регистр и выполнение программ
Структуры данных
Создание частиц
Многопользовательские игры
Использование DLL библиотек
3D графика
О переводе


Рейтинг@Mail.ru

GMakers.ru © 2007-2011 - All Rights Reserved

Справка Game Maker 8.0

Предыдущая Следующая

Синхронизация

Хорошие игры требуют осторожную синхронизацию определённых событий. К счастью Game Maker предоставляет Вам эту возможность. Вы убедитесь, что события случаются в постоянном темпе. Этот показатель определяется определением комнаты. Но Вы можете изменить это, используя глобальную переменную room_speed. Так, например, Вы можете медленно увеличить скорость игры, делая её более трудной, добавляя ту же небольшую сумму (подобно 0.001) в room_speed в каждом шаге. Если Ваша машина медленна, ускорение игры не может быть достигнуто таким образом. Это может быть проверено при использовании переменной fps, которая постоянно проверяет фактическое количество кадров в секунду. Наконец, для некоторой расширенной синхронизации, Вы можете использовать переменную current_time, которая предоставляет количество миллисекунд с тех пор, когда компьютер был включен. Вот общий набор доступных переменных (только первая может быть изменена):
room_speed Текущая скорость комнаты (шагов за секунду).
fps* Количество кадров, которые "отрисовываются" в секунду.
current_time* Количество миллисекунд, которые прошли с тех пор, как система была запущена.
current_year* Текущий год.
current_month* Текущий месяц.
current_day* Текущий день.
current_weekday* Текущий день недели (1=воскресенье, ..., 7=суббота).
current_hour* Текущий час.
current_minute* Текущая минута.
current_second* Текущая секунда.

Иногда Вы можете захотеть приостановить игру. Для этого, используйте функцию sleep.

sleep(numb) "Заморживает" игру на numb миллисекунд.

Вы уже должны знать, что каждый экземпляр объекта имеет 12 таймеров, которые Вы можете установить. Чтобы изменить значения (или получить значения) другого таймера, используйте следующие переменные:

alarm[0..11] Значение для указанного таймера. (Не забудьте, что таймер будет вести отсчёт только в том случае, если событие таймера для объекта содержит действия!)

Мы рассматриваем это для комплекса вопросов по синхронизации. Вы можете также использовать ресурс тайм-лайна. Каждый экземпляр объекта может связать с собой ресурс тайм-лайна. Следующие переменные имеют дело именно с этим:

timeline_index Идентификатор тайм-лайна, связанный с текущим объеком. Если переменная равняется -1, то объект не будет использовать тайм-лайны.
timeline_position Содержит текущую позицию установленного тайм-лайна Вы можете изменить это, чтобы пропустить определённые части или чтобы их повторить.
timeline_speed Скорость шага тайм-лайна. (По умолчанию, за один шаг позиция тайм-лайна увеличивается на единицу.) Если значение больше чем 1, то несколько моментов могут случиться в течение одного и того же такта. Они будут все выполнены в правильном порядке, так что никакие действия не будут пропущены. timeline_running Равна истине, если тайм-лайн запущен или ложи, если не запущен. Вы можете менять переменную, чтобы запускать или останавливать тайм-лайн.
timeline_looping Равна истине, если тайм-лайн будет повторяться после окончания или ложи, если нет. Вы можете изменять её значение.
 
Рейтинг@Mail.ru