因为考虑到市面上cocos的游戏较多,适合业务发展,而淘宝小程序的创意互动只支持3款游戏引擎,而不支持cocos,所以特此开发cocos引擎适配器
- cocos 适配版本是 2.4.6
- 淘宝客户端版本尽量最新,目前 9.9.x 版本的无解,10.x 可行
cocos 使用的全局变量统一用 $global 代替
// 全局变量 直接设为 $global,不需要设为 $global.window
var window = $global;
- adapter.js(重要)
- physics-min.js
- main.js
- cocos2d-js-min.js
- global-variables.js(暂时不需要)
// app.js
var window = $global;
var onShowCB;
var onHideCB;
App({
onLaunch(options) {
console.info("App onLaunched");
// 小程序执行出错时
my.onError(function (error) {
console.error(["ERROR"], error);
});
my.onUnhandledRejection((res) => {
console.error("[UnhandledRejection]", res.reason, res.promise);
});
my.onShow = function (cb) {
onShowCB = cb;
};
my.onHide = function (cb) {
onHideCB = cb;
};
$global.__cocosCallback = function (options) {
require("./ccRequire");
require("./adapter");
$global.__globalAdapter.init();
options.afterAdapterInit();
$global.__globalAdapter.onShow = function (cb) {
onShowCB = cb;
};
$global.__globalAdapter.onHide = function (cb) {
onHideCB = cb;
};
require("./cocos2d-js-min");
require("./physics-min.js");
$global.__globalAdapter.adaptEngine();
require("./src/settings");
// Introduce Cocos Service here
require("./main"); // TODO: move to common
// Adjust devicePixelRatio
$global.cc.view._maxPixelRatio = 4;
// Release Image objects after uploaded gl texture
$global.cc.macro.CLEANUP_IMAGE_CACHE = true;
window.boot();
};
},
onShow(options) {
onShowCB && onShowCB();
},
onHide(options) {
onHideCB && onHideCB();
},
});
// src/settings.js
// 文件开头声明以下变量
var window = $global
需要检查文件夹内部的js文件是否用到全局变量的,如果有用到的话,按需声明全局变量,例如:
// assets/start-scene/index.js
// 注入声明全局变量 start
var window = $global
var cc = $global.cc
// 注入声明全局变量 end
// 业务代码,这里不需要管
window.__require = function e(t, n, r) {}