【极简攻略】如何定制CocosCreator,打造属于自己的引擎

1、安装NodeJs

https://nodejs.org/en/download/
image

2、备份引擎代码

image
点击Creator右上角“编辑器”,打开引擎目录,复制engine文件夹到备份目录。

例如我把engine复制到D盘并改名

image

Creator文件->设置->取消勾选“使用内置的Javascript引擎”,并设置新的引擎目录。
image
3、PowerShell里输几个命令
image
开始菜单,找到Windows PowerShell(x86),以管理员身份运行。
image
依次输入:

a)set-ExecutionPolicy RemoteSigned 并填A

b)cd D:\CocosEngine

c)npm install -g gulp

d)npm install

4、修改引擎并编译
接下来修改新目录下的引擎代码,就可以编译了。

举例:每次修改节点的skewX或skewY都会提示:cc.Node.skewX/Y is deprecated since v2.2.1, please use 3D node instead.

如何把这句提示去掉?

打开vscode,把D:\CocosEngine文件夹拖进去。

找到D:\CocosEngine\cocos2d\core\CCNode.js
image
以上2个地方注释并保存。

PowShell输入gulp build-dev

重启Creator,无论怎么修改skewX或skewY都不会再提示,搞定!

以后重复3个步骤就可以了:修改引擎代码->gulp build-dev重新编译->重启Creator
推荐链接:

1、【包教包会】重写cc.Button,做了5个优化

2、【包教包会】极简实现全局消息弹窗,超好用

3、【包教包会】分享一个CocosCreator组件——动作残影

4、【包教包会】零代码实现转盘抽奖功能

5、【包教包会】CocosCreator怎么用namespace实现类似于cc的全局变量

4赞

可以的,点赞

先mark一下,有需要的时候倒腾

屏蔽skew提醒更简单的方式是把这段代码放到自己脚本中就可以了(适用2.4.12):

Object.defineProperties(cc.Node.prototype, {
    skewX: {
        get() {
            return this._skewX;
        },
        set(value) {
            this._skewX = value;
            this.setLocalDirty(cc.Node._LocalDirtyFlag.SKEW);
            if (CC_JSB && window['CC_NATIVERENDERER']) {
                this._proxy.updateSkew();
            }
        }, enumerable: true, configurable: true
    },
    skewY: {
        get() {
            return this._skewY;
        },
        set(value) {
            this._skewY = value;
            this.setLocalDirty(cc.Node._LocalDirtyFlag.SKEW);
            if (CC_JSB && window['CC_NATIVERENDERER']) {
                this._proxy.updateSkew();
            }
        }, enumerable: true, configurable: true
    },
    _initProperties: {
        value() {
            if (this._is3DNode) {
                this._update3DFunction();
            }

            let trs = this._trs;
            if (trs) {
                let desTrs = trs;
                trs = this._trs = this._spaceInfo.trs;
                // just adapt to old trs
                if (desTrs.length === 11) {
                    trs.set(desTrs.subarray(1));
                } else {
                    trs.set(desTrs);
                }
            } else {
                trs = this._trs = this._spaceInfo.trs;
            }

            this._fromEuler();

            if (CC_JSB && window['CC_NATIVERENDERER']) {
                this._renderFlag |= cc['RenderFlow'].FLAG_TRANSFORM | cc['RenderFlow'].FLAG_OPACITY_COLOR;
            }
        }, enumerable: true, configurable: true, writable: true
    }
});

666可以的