Игры
Модуль игр предоставляет различные игровые функции. После прочтения раздела, связанного с вашим игровым движком, на страницеВведение в JOGOS_SDK, вы можете использовать соответствующие функции следующим образом:
window.JOGOS_SDK.game;Если вам необходимо выполнить операции настройки, такие как адаптация языка локализации, адаптация устройства и калибровка времени на этапе инициализации, вы можете перейти на связанную страницу Инициализация (SysInfo), чтобы просмотреть подробные определения параметров и методы конфигурации.
Приостановка/продолжение игры
При остановке игры (завершение уровня, пауза и т. д.) необходимо вызвать метод приостановки игры, чтобы сообщить нам, что игра приостановлена. Не забудьте вызвать метод продолжения игры, чтобы сообщить нам, что игра продолжается, когда игра возобновляется или продолжается (возобновление, воскрешение, переход к следующему уровню и т. д.). Внутри SDK автоматически обрабатывается приостановка и продолжение во время показа рекламы, поэтому повторный вызов не требуется.
// Сообщить нам, что игра приостановлена
await window.JOGOS_SDK.game.pause();
// Сообщить нам, что приостановленная игра продолжается
await window.JOGOS_SDK.game.continuePlay();Начало/окончание загрузки игры
Когда ваша игра начинает загружаться, вы должны вызвать метод начала загрузки, чтобы сообщить нам, что игра начала загружаться. После завершения загрузки обязательно вызовите метод завершения загрузки, чтобы сообщить нам, что игра завершила загрузку.
// Сообщить нам, что игра начала загружаться
await window.JOGOS_SDK.game.loadingStart();
// Сообщить нам, что загрузка игры завершена
await window.JOGOS_SDK.game.loadingEnd();Когда игра начинает загружаться, вы должны вызвать метод начала загрузки, чтобы сообщить нам, что игра начала загружаться. После завершения загрузки вы должны вызвать метод завершения загрузки, чтобы сообщить нам, что игра завершила загрузку.
// Сообщить нам, что игра приостановлена
await window.JOGOS_SDK.game.pause();
// Сообщить нам, что игра продолжается
await window.JOGOS_SDK.game.continuePlay();Веселое время
Этот метод можно вызывать, когда игрок достигает какого-либо успеха (побеждает Босса, достигает высокого счета и т. д.). После успешного вызова этого метода на сайте будет запущено праздничное действие (например, запустятся конфетти). При завершении уровня или получении награды вызов этого метода не требуется.
// Активировать веселое время в игре
await window.JOGOS_SDK.game.happytime();Функции друзей и чата
Мы интегрировали стандартизированный модуль социальных функций, охватывающий управление дружескими отношениями и услуги чата в реальном времени. Если ваша игра поддерживает многопользовательский интерактивный геймплей, вы можете быстро подключиться через легковесный API, чтобы реализовать ключевые социальные сценарии: облачную синхронизацию списка друзей, приглашение в команду одним нажатием, приватные диалоги и другие. Это помогает разработчикам эффективно построить иммерсивную социальную экосистему внутри игры с чрезвычайно низкими затратами на разработку.
- При использовании разработчику необходимо передать соответствующий UserId игрока на стороне платформы в качестве передаваемого параметра.
Проверка дружеских отношений
Проверить, является ли указанный игрок другом текущего пользователя.
/**
* Проверить, является ли указанный игрок моим другом
* @param {Array<number>} userIds Набор ID игроков
* @returns {Promise<Object>} { [userId: number]: boolean } Объект пар ключ-значение
*/
window.JOGOS_SDK.game.isMyFriends = async function(userIds) {
// Внутренняя реализация
}Объяснение логики взаимодействия с друзьями
Разработчикам необходимо самостоятельно реализовать логику отображения кнопки на основе дружеских отношений:
- Определение состояния кнопки: Использовать интерфейс
isMyFriendsдля проверки, является ли указанный игрок другом. - Логика отображения кнопки:
- Если является другом: Отобразить кнопку "Conversation", при нажатии вызвать
openChatDialogдля начала чата. - Если не является другом: Отобразить кнопку "Add Friend", при нажатии вызвать
sendFriendRequestдля отправки запроса на добавление в друзья.
- Если является другом: Отобразить кнопку "Conversation", при нажатии вызвать
- Реализация кнопки: Стиль UI, позиция и эффекты взаимодействия кнопки полностью реализуются самим разработчиком игры.
Пример кода
// Пример реализации кнопки взаимодействия с другом
async function setupFriendButton(userId, buttonElement) {
try {
// 1. Проверить дружеские отношения
const friendStatus = await window.JOGOS_SDK.game.isMyFriends([userId]);
const isFriend = friendStatus[userId];
// 2. Настроить кнопку на основе дружеских отношений
if (isFriend) {
// Показать кнопку чата
buttonElement.textContent = "Conversation";
buttonElement.onclick = async () => {
const success = await window.JOGOS_SDK.game.openChatDialog(userId);
if (!success) {
alert("Не удалось открыть окно чата, убедитесь, что находитесь в среде официальной платформы");
}
};
} else {
// Показать кнопку добавления друга
buttonElement.textContent = "Add Friend";
buttonElement.onclick = async () => {
const success = await window.JOGOS_SDK.game.sendFriendRequest(userId);
if (success) {
alert("Запрос на добавление в друзья отправлен");
} else {
alert("Не удалось отправить запрос на добавление в друзья");
}
};
}
// 3. Добавить логику защиты от частых нажатий
let lastClickTime = 0;
const originalClick = buttonElement.onclick;
buttonElement.onclick = function() {
const now = Date.now();
if (now - lastClickTime < 3000) {
console.log("Слишком частые нажатия, повторите попытку позже");
return;
}
lastClickTime = now;
originalClick.call(this);
};
} catch (error) {
console.error("Не удалось настроить кнопку друга:", error);
}
}Добавить друга
Отправить запрос на добавление в друзья указанному игроку.
/**
* Отправить запрос на добавление в друзья указанному игроку
* @param {number} userId ID целевого игрока
* @returns {Promise<boolean>} Успешно ли отправлено
*/
window.JOGOS_SDK.game.sendFriendRequest = async function(userId) {
// Внутренняя реализация
}Начать чат
Открыть окно чата с указанным другом.
/**
* Открыть окно чата с указанным игроком
* @param {number} userId ID целевого игрока
* @returns {Promise<boolean>} Успешно ли открыто
*/
window.JOGOS_SDK.game.openChatDialog = async function(userId) {
// Внутренняя реализация
}Обработка границ:
- При встраивании на неофициальной платформе возвращать сбой и показывать подсказку: "Функция чата с друзьями доступна только на официальной платформе".
- Кнопку нельзя нажимать повторно в течение 3 секунд после нажатия.
Интерфейс инициализации будет возвращать параметры поля приглашения
- В интерфейс инициализации игры добавлены пользовательские параметры для приглашения присоединиться к игре, такие как ID комнаты, код приглашения и т.д. Разработчики могут передавать эти параметры при распространении ссылки-приглашения. Когда приглашенный игрок входит в игру по ссылке, SDK передаст параметры разработчику, чтобы затянуть игрока в соответствующую комнату.
// Передача параметров комнаты при инициализации игры (пример)
const gameConfig = {
inviteArgs: 'ABC123', // Пользовательское поле (например, код приглашения/ID комнаты)
// Другие настройки игры...
};
// Передача параметров при инициализации SDK
window.JOGOS_SDK.init({
gameId: 'your_game_id',
customParams: JSON.stringify(gameConfig)
});Открыть окно приглашения друзей
- Когда пользователь находится в позиции в игре, где можно присоединиться к новой игре, эта функция позволяет вам разместить кнопку "Поделиться приглашением" в сцене игры:
- Нажатие на кнопку открывает всплывающее окно со ссылкой-приглашением, поддерживается выбор друзей для отправки приглашения.

- Ссылка-приглашение будет содержать пользовательские параметры (например, ID комнаты/код приглашения и т.д.). Когда приглашенный игрок нажимает на ссылку для входа в игру, разработчик может разобрать параметры и затянуть игрока в соответствующую комнату.
- Нажатие на кнопку "Invite friend" в сцене игры открывает боковую панель списка друзей, отправляет сообщение с приглашением друзьям, поддерживает присоединение к игре по ссылке или через прямое приглашение.
/**
* Открыть окно приглашения
* @param {Object} inviteArgs Объект параметров приглашения
* @param {string} inviteArgs.inviteArgs Пользовательские параметры приглашения (обязательно, например ID комнаты или код приглашения)
* @param {string} [inviteArgs.customData] Пользовательские данные (будут переданы приглашенному)
* @param {number} [inviteArgs.expireTime] Отметка времени истечения срока действия ссылки-приглашения (миллисекунды)
*/
window.JOGOS_SDK.game.openInviteDialog = function(inviteArgs) {
// Проверка параметров
if (!inviteArgs || !inviteArgs.inviteArgs) {
throw new Error('Missing required parameter: inviteArgs');
}
// Внутренняя реализация:
// 1. Сгенерировать ссылку-приглашение с параметрами
// 2. Открыть всплывающее окно приглашения (содержит список друзей и варианты поделиться)
// 3. Обработать обратный вызов результата приглашения
};