Дата-структуры

Это функциональное назначение доступно только в Pro издании Game Maker.

В играх Вам часто понадобится загружать информацию. Например, Вам нужно загрузить списки предметов покупки одной партии товара, и список одновременной продажи товара другому человеку; или Вы захотите загрузить места, где всё это должно быть размещено. Вы можете использовать для этого массивы. Но если Вы захотите сделать операции более сложными, подобно сортировке данных или поиск конкретного пункта, Вам нужно записывать большие части кода GML, которые при исполнении могут быть медленными.

Для исправления этого Game Maker имеет множество встроенных дата-структур, которые могут быть доступны через функции. На данное время существует шесть доступных типов дата-структур: стеки, очереди, списки, карты, приоритетные очереди и сетки. Каждая из этих дата-структур настроена для использования конкретного типа (смотрите ниже).

Все дата-структуры работают глобально. Вы можете создать дата-структуры с функцией, которая возвращает id для структур. Вы используете этот id, чтобы выполнить операцию в дата-структурах. Как только Вы использовали её, она уничтожается, чтобы сохранить память. Вы можете использовать много структур в любом желаемом моменте. Все структуры могут загружать как строки, так и реальные значения.

Пожалуйста, обратите внимание, что дата-структуры и их содержимое не сохраняется при сохранении игры, используя соответствующие для этого действия или функции. Если Вы используете дата-структуры и хотите сохранить их, то для этого нужно создать свой собственный механизм.

При сравнении значений, например, при поиске на карте или сортируя список, Game Maker должен решить, когда две величины равны. Для строк и целых значений это ясно, если бы не действительные числа из-за округления ошибок - равняемое число может легко стать неравным. Например (5/3)*3 не равняется 5. Для того чтобы избежать этого, используется точность. Когда различие между двумя числами меньше той точности, при которой они считаются равными. Точность используемая по умолчанию - 0.0000001. Вы можете изменить эту точность, используя следующие функции:

ds_set_precision(prec) Устанавливает точность, используемую для периодического обмена информацией о взаимных сравнениях.

Эта точность используется во всех дата-структурах, но не в другом периодическом обмене информацией о взаимных сравнениях в GML!

Информация о дата-структурах может быть обнаружена на следующих страницах:

Стеки
Очереди
Списки
Карты
Приоритетные Очереди
Сетки