Асинхронные функции

Материал из Вики по GameMaker
Перейти к: навигация, поиск

Асинхронная функция — это такая, которая отправляет данные на веб-сервер, запрашивает пользовательский ввод или даже подгружает данные, пока игра продолжает работать. Когда получен обратный вызов, срабатывает особое событие Ev async.gifAsync, которое позволяет экземпляру вызвать дальнейшие функции. По сути, это способ сообщаться с каким-то внешним источником, не блокируя игру в ожидании ответа.

Почему это важно? GMS продолжает работать, получая или отправляя данные, а значит, вы можете делать многое, не блокируя игровой цикл, например:

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

Асинхронное событие срабатывает во всех экземплярах, в которых оно есть, то есть вы можете вызвать асинхронную функцию в одном экземпляре, а обработать соответствующее асинхронное событие — в другом.

Содержание

[править] Диалоги

В предыдущих версиях GameMaker всплывающие диалоги блокировали игру, ожидая отклика от пользователя. Однако большинство современных устройств воспримет такое поведение как ошибку и закроет приложение. Поэтому в GameMaker Studio есть асинхронные эквиваленты этих функций. Игра будет продолжать работать, а когда пользователь откликнется на диалоговое окно, сработает событие Ev async.gifAsync Dialogs, в котором вы обработаете результат.

[править] Функции

get_login_async
show_message_async
show_question_async
get_string_async
get_integer_async

[править] HTTP

[править] Функции

http_request
http_get
http_get_file
http_post_string

[править] Проблемы с междоменными запросами

Обратите внимание, что перечисленные выше функции могут работать не так, как вы ожидаете, из-за проблем с безопасностью.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты