最近在做一个塔防的项目,怎么说呢,炮台,子弹攻击特效加上受击特效等等等一顿代码撸下来一看dc稳定在200+,这还只是核心的游戏逻辑,如果加上ui那还得了,普通手机挂几分钟就直接挂掉,那就想只能先优化了,这个时候想到之前看过一个滑动层优化的代码,于是想着照葫芦画瓢直接把他的思想拿过来用啊,实践后发现果然可行,不得感叹大佬还是大佬。
先看看没有优化之前的dc,只有两种炮的情况下就是120了:
看看现在,n种炮加子弹特效加受击特效:
那就直接讲思路吧,首先在主场景中,挂一个节点,专门用来做渲染层的东西,比如这个项目中的炮,我就拧出来单独做一个节点存放,并挂上脚本turretRender.ts,它主要就是干两个事,
1.克隆一个需要用到的spine节点并加入到这个渲染节点下
2.不用的时候destroy掉
代码:
addRenderNodeToRoot(type,name:string, node:cc.Node){
let baseNode:cc.Node = this._turretRoot;
let parentNode:cc.Node = baseNode.getChildByName(name);
if(parentNode){
parentNode.addChild(node);
return;
}
parent