sideGame
如未使用 OSDK Login API,则不能使用此 API 中的关卡存储功能 saveMaxLevelgetMaxLevel,因为会依赖 OSDK 云存储进而依赖 OSDK 登录态,故请自行使用游戏后台的存储能力进行关卡存储。
sideGame集成相关副玩法功能,包括:
- 多副玩法注册;
- 关键事件上报;
- 与主玩法通信,可发放奖励、校验体力等。
使用
在游戏主程序中初始化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编辑器进行导入。