Перейти к основному содержимому

Общие возможности

Язык

SDK может автоматически определять язык игроков. Если платформа предоставляет язык, то мы его используем или выбираем язык, предпочитаемый игроком.

Узнать язык:

// Выбранный язык в формате ISO 639-1
gp.language;

Установить язык:

// Формат ISO 639-1 ('ru', 'en', 'fr')
gp.changeLanguage('ru');

Все поддерживаемы языки:

  • Английский: en
  • Русский: ru
  • Французский: fr
  • Итальянский: it
  • Немецкий: de
  • Испанский: es
  • Китайский: zh
  • Португальский: pt
  • Корейский: ko
  • Японский: ja
  • Турецкий: tr
  • Арабский: ar
  • Хинди: hi
  • Индонезийский: id

Системная информация

Определение устройства

/**
* Мобильное / десктопное устройство
* @readonly
* @type {boolean}
*/
gp.isMobile;

Режим экрана: портретный / альбомный

/**
* портретный / альбомный режим экрана
* @readonly
* @type {boolean}
*/
gp.isPortrait;

Подписываемся на событие смены ориентации экрана:

gp.on('change:orientation', (isPortrait) => {
logger.log('orientation changed', { isPortrait });
});

Информация о хосте игры

/**
* GamePush в режиме разработки
* За это отвечает галка dev у нужного источника
* @readonly
* @type {boolean}
*/
gp.isDev;

/**
* Хост игры в доверенных источниках
* За это отвечает раздел Allowed Origins
* @readonly
* @type {boolean}
*/
gp.isAllowedOrigin;

Вы можете через свойство gp.isAllowedOrigin проверять была ли игра перезалита на чужую площадку. В разделе Доверенные сайты панели управления играми есть переключатель - Включить защиту. Он позволит блокировать все новые неизвестные хосты игры. В списке хостов вы сможете разрешать доступ нужным хостам.

Серверное время

SDK предоставляет доступ к серверному времени.

Оно всегда достоверно, его нельзя изменять через код и изменяя время устройства. Вы можете использовать его в качестве достоверного времени для защиты от накруток.

Получить время:

// Текущее серверное время в формате ISO 8601
gp.serverTime;

// Пример использования
// Час времени в миллисекундах
const HOUR = 60 * 60 * 1000;
// Текущее время
const currentDate = new Date(gp.serverTime);
// Предыдущее время получения награды
const lastDate = new Date(gp.player.get('lastRewardTime') || currentDate - HOUR);

// Если прошел час игрового времени, даем награду
// И обновляем время получения награды
if (currentDate - lastDate > HOUR) {
gp.player.add('gold', 5000);
gp.player.set('lastRewardTime', currentDate.toISOString());
}

Пауза

Вам доступен механизм контроля паузы в игре. У SDK есть флаг "На паузе", сам по себе он ничего не значит, однако можно завязаться на него, если нужно приостанавливать и продолжать игру. Дополнительно SDK уведомит о том, что сработала пауза или продолжение.

Автоматическая пауза происходит при:

  • Показ рекламы. Пауза в начале показа и возобновление при закрытии (не при получении награды).
  • Сворачивание игры. Пауза при переключении вкладки, сворачивании браузера, переключении приложения, блокировке экрана и возобновление когда игра снова видима.

Определение паузы:

/**
* На паузе
* @readonly
* @type {boolean}
*/
gp.isPaused;

Установить паузу вручную:

// Поставить на паузу
gp.pause();
// Возобновить
gp.resume();

События паузы и продолжения:

// Поставили на паузу
gp.on('pause', () => {});
// Возобновили игру
gp.on('resume', () => {});

Фоновое изображение игры

Вы можете установить фон игры.

Метод установки фона:

gp.setBackground({ url: '/bg.png' });

Полные возможности функции:

gp.setBackground({
// Ссылка на изображение
url: '/bg.png',
// Размытие фонового изображения, px
blur: 10,
// Длительность анимации смены изображения, sec
fade: 5,
});

Вы можете вызывать метод один за другим для смены фоновго изображения, например:

// Установили фон
gp.setBackground({ url: '/bg.png', blur: 10, fade: 5 });
// Поменяли на другой
gp.setBackground({ url: '/bg2.png', blur: 6, fade: 12 });

Старт игры

Некоторым площадкам для уведомления о начале игры требуется метод старта.

Вызов должен происходить после загрузки игры:
gp.gameStart();

Геймплей

Для некоторых площадок, например POKI и CrazyGames нужно вызывать методы старта и завершения геймплея. Их нужно вызывать непостредственно перед началом игрового процесса и сразу после завершения. Например в начале уровня и конце уровня.

// Уведомить о запуске геймплея
gp.gameplayStart();

// Уведомить о завершении
gp.gameplayStop();

Оставайтесь на связи

С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: [email protected]

Желаем вам успехов!