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

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

Язык

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

Узнать язык FREE:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FREE

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

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

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

// Текущее серверное время в формате 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 уведомит о том, что сработала пауза или продолжение.

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

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

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

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

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

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

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

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

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

FREE

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

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

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 });

Старт игры

FREE

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

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

Геймплей

FREE

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

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

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

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

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

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

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

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