События
Пауза и возобновление игры
С помощью событий game_api_pause
и game_api_resume
платформа сообщает игре, что нужно поставить игровой процесс на паузу или возобновить его. Они упрощают процесс интеграции с нашей платформой и помогают соответствовать требованиям модерации (пункты 1.3 и 4.7).
Игры, которые поддерживают события паузы и возобновления игры, могут быть дополнительно дистрибутированы на внешние площадки.
game_api_pause и game_api_resume
События помогут вам отследить:
- показ и закрытие полноэкранной или rewarded-рекламы;
- открытие и закрытие окна покупок;
- переключение вкладок браузера;
- сворачивание и разворачивание окна браузера.
Они согласованы с методами разметки геймплея. При срабатывании game_api_pause
вызывается метод GameplayAPI.stop()
, а при срабатывании game_api_resume
– GameplayAPI.start()
.
Если игра уже была остановлена с помощью метода GameplayAPI.stop()
(например, когда игрок открыл меню), и затем срабатывает game_api_pause
, то при последующем событии game_api_resume
метод GameplayAPI.start()
не будет вызван. Это позволяет сохранить текущее состояние игры без нарушения логики разметки геймплея.
Используйте методы on()
и off()
из SDK Яндекс Игр для подписки на события и отписки от них соответственно.
Пример
const pauseCallback = () => {
pauseGame(); // Ваша функция, останавливающая game loop и музыку.
console.log('GAME PAUSED');
};
ysdk.on('game_api_pause', pauseCallback); // Подписка на события 'game_api_pause'.
ysdk.off('game_api_pause', pauseCallback); // Отписка от событий 'game_api_pause'.
const resumeCallback = () => {
resumeGame(); // Ваша функция, возобновляющая game loop и музыку.
console.log('GAME RESUMED');
};
ysdk.on('game_api_resume', resumeCallback); // Подписка на события 'game_api_resume'.
ysdk.off('game_api_resume', resumeCallback); // Отписка от событий 'game_api_resume'.
Выход из игры
Вы можете отслеживать события, возникающие при нажатии пользователем определенных кнопок в игре.
enum ESdkEventName {
EXIT = 'EXIT',
HISTORY_BACK = 'HISTORY_BACK'
}
ysdk = {
EVENTS: {
EXIT: ESdkEventName.EXIT,
HISTORY_BACK: ESdkEventName.HISTORY_BACK
},
dispatchEvent(eventName: ESdkEventName, detail?: object): Promise<unknown> {},
on(eventName: ESdkEventName, listener: Function): () => void {}
};
HISTORY_BACK
Внимание
Событие доступно только в случае, если игра запущена на телевизоре.
Чтобы отследить нажатие на кнопку Back, используйте метод:
ysdk.on(ysdk.EVENTS.HISTORY_BACK, () => {
// Показ пользователю кастомного диалога игры с возможностью
// подтвердить выход из игры, перейти к внутренним настройкам, магазину и т. п.
});
EXIT
Если пользователь подтвердил выход из игры в кастомном диалоге, открывшемся после нажатия Back, то игра должна отправить событие выхода. Для этого используйте метод:
ysdk.dispatchEvent(ysdk.EVENTS.EXIT);
Примечание
Сотрудники службы поддержки помогают разместить готовую игру на платформе Яндекс Игр. На прикладные вопросы о разработке и тестировании предметно ответят другие разработчики в Сообществе в Telegram.
Если при использовании SDK Яндекс Игр вы столкнулись с проблемой или у вас появился вопрос, обратитесь в службу поддержки: