SDK-副玩法

更新时间:2026-06-06 12:00:00OSDK

sideGame

如未使用 OSDK Login API,则不能使用此 API 中的关卡存储功能 saveMaxLevelgetMaxLevel,因为会依赖 OSDK 云存储进而依赖 OSDK 登录态,故请自行使用游戏后台的存储能力进行关卡存储。

sideGame集成相关副玩法功能,包括:

  1. 多副玩法注册;
  2. 关键事件上报;
  3. 与主玩法通信,可发放奖励、校验体力等。

使用

在游戏主程序中初始化sdk,并完成副玩法的注册,同时将sdk对象暴露到全局供副玩法调用

// 游戏主玩法(一般是大厅或游戏启动页或全局js),完成sdk引入和初始化,并暴露到全局供副玩法调用进行通信
import OSDK from './Libs/osdk/index.min.js';
export class Home extends Component {
start() {
        // 1. 初始化sdk
const sdk = new OSDK({
            appid: 'wx*****', // 小游戏appid
            secret_key: '*****', // osdk的secretkey
            debug: true,
        });
        // 2. 将OSDK的初始化实例暴露到全局,供副玩法调用,完成通信
        window.osdk = sdk;
        // 3. 初始化 Cloud,副玩法的关卡进度会依赖云存储能力,不
        sdk.cloud.init({ env: 'prod' });
        // 4. 注册副玩法信息及相关回调事件
        sdk.sideGame.register({
            gameId: '331230', // 副玩法游戏id,自定义6位数字符,需要确保单小游戏下的副玩法游戏id不重复
            gameName: '割绳子', // 副玩法游戏名
            // 可选,是否保存最大通关数到云端,如果设置为true,请务必提前初始化云环境sdk.cloud.init,否则将存储失败
            saveMaxLevel: false,
            // 可选,配置前10关奖励
            rewards: [
                { level: 1, coins: 100, exp: 50 },
                { level: 2, coins: 200, exp: 100 },
                { level: 3, coins: 300, exp: 150, items: ['武器强化石'] },
                { level: 4, coins: 400, exp: 200 },
                { level: 5, coins: 500, exp: 250, items: ['稀有武器箱'] },
                { level: 6, coins: 600, exp: 300 },
                { level: 7, coins: 700, exp: 350, items: ['史诗武器箱'] },
                { level: 8, coins: 800, exp: 400 },
                { level: 9, coins: 900, exp: 450, items: ['传说武器箱'] },
                { level: 10, coins: 1000, exp: 500, items: ['神话武器箱', '专属称号'] }
            ],
            // 游戏关卡开始前的体力检测
            beforeGameStart: async () => {
                // 向游戏服务端发起请求,查询玩家是否可以进入游戏,
                // 如果可以进入游戏,beforeGameStart返回true,否则返回false禁止开始游戏。
                //(服务器可顺便扣除体力消耗)
                // 示例:
                // wx.request({
                //     url: '/api/checkCanPlay',
                //     success: (res) => {
                //         if (res.data.code === 0) {
                //             return true;
                //         } else {
                //             return false;
                //         }
                //     }
                // });
                return true;
            },
            
            onStart: () => {
                // 关卡开始
            },
            // 关卡通关的回调
            onSuccess: (data, reward) => {
                console.log('恭喜通关!');

                // 第N关关卡通关,发起请求结算,发放奖励,示例:
                // wx.request({
                //     url: '/api/settle',
                //     data: {
                //         level: data.level,
                //         score: data.score
                //     },
                //     success: (res) => {
                //         if (res.data.code === 0) {
                //             // 发放奖励
                //         }
                //     }
                // });
            },

            onFail: (data) => {
                console.log('💀 游戏失败');

                // 第N关关卡失败,如失败时也有奖励,可发起请求结算,发放奖励,示例:
                // wx.request({
                //     url: '/api/settle',
                //     data: {
                //         level: data.level,
                //         score: data.score
                //     },
                //     success: (res) => {
                //         if (res.data.code === 0) {
                //             // 发放奖励
                //         }
                //     }
                // });
            },
            // 关卡退出的回调
            onExit: () => {
                console.log('退出游戏');
                director.loadScene('home'); // 可选,点击副玩法退出时,跳转大厅
            }
        });
}
}

对于每个副玩法,会交付zip资源包,使用cocos creator编辑器进行导入。

相关文档