调试一下C++代码,看看批次在哪里,被什么原因打断不就好了么?要善于使用开源的优势。。。
什么硬件,什么浏览器,说清楚点啊。Drawcall 不一样,是哪些元素引起的,二分法测一下?
微信 里面 打开浏览器 测试的
app 安卓苹果 都是 一样
drawcall 是 使用的 创建 节点 更换 SpriteAtlas 里面的 spriteFrame
c++ 不会玩
var linshi = parseInt(Math.random()*18);
var preChoumaNode = new cc.Node(linshi);
var ptujis = new cc.Node(“yuer”);
var sp = ptujis.addComponent(cc.Sprite);
var yingzi = new cc.Node("yingzi");
var spyingzi = yingzi.addComponent(cc.Sprite);
////////
spyingzi.spriteFrame = this.tujiflash._spriteFrames["fish_"+linshi+"_0"];
yingzi.color = cc.Color.BLACK;
yingzi.x = -30;
yingzi.opacity = 80;
yingzi.parent = preChoumaNode;
/////////////
preChoumaNode.group = "yuer";
var buyus = preChoumaNode.addComponent(cc.BoxCollider);
preChoumaNode.addComponent("ColliderListener");
ptujis.parent = preChoumaNode;
preChoumaNode.tag =-1;
preChoumaNode.x = 839;
preChoumaNode.y = -231;
preChoumaNode.rotation =-90;
preChoumaNode.anchorY = 0;
sp.spriteFrame = this.tujiflash._spriteFrames["fish_"+linshi+"_0"];
preChoumaNode.parent = this.YUTANG;
buyus.size.width = ptujis.width/3;
buyus.size.height = ptujis.height/1.5;
buyus.offset = {x:0,y:0};
var y = linshi+parseInt(Math.random()*1600 - 800);;
var times = parseInt(Math.random()*20 + 5);
var finish = cc.callFunc(function(dxx,dsfds){
dsfds.destroy();
}, this,preChoumaNode);
if(mm > 1000) mm = 100;
preChoumaNode.runAction( cc.sequence ( cc.moveTo(16, cc.p(-842, y)) , finish ) );
cc.BoxCollider
节点下挂的脚本
preChoumaNode.addComponent(cc.BoxCollider);
preChoumaNode.addComponent(“ColliderListener”);
微信浏览器下 不算一个 calldraw
app 下面 算一个 calldraw ???
@wangzhe @panda @dumganhar @jare
addComponent(cc.BoxCollider);
测试demo 帮忙看看 微信浏览器下 不算一个 calldraw
app 下面 算一个 calldraw ???
导致 app calldraw 无法 进行游戏下一步
浏览器可以 测试复现demo 归档.zip (1.2 MB)
cc.PolygonCollider 渲染也会多 一个 calldraw 呢
看性能的时候先把 debug draw 关掉,这个 debug 时才需要
cc.BoxCollider
cc.PolygonCollider
是存在问题的 app 和 浏览器 渲染 不同
流览器完全 不卡
app 反而卡
不能沉了定期来哦
其实我想知道浏览器是怎么做到的,Drawcall 竟然只有6那么小
图集 直接创建 node 即可 鱼这些动画 写一个定时器 更换 图集 name 即可
大佬说的对,同样的图是不会额外消耗DrawCall的,所以要把各种各样的鱼放进来,同时要加碰撞检测。这两个应该是性能瓶颈所在吧。
没有的 app 有个 bug
cc.BoxCollider
cc.PolygonCollider
DrawCall 需要消耗多的
浏览器完全没有问题
就 app 这个 问题
关掉了dc,还有问题吗?
所以你这里其实所有鱼都是一样的node?
只是游出界面(或者理解为定了时间)就回收到对象池,重新生成的时候就从对象池获取,然后换鱼的图和动画?
是呀 你看上面哪个测试 demo.zip
网页 没问题 app 卡成狗
cc.BoxCollider
cc.PolygonCollider 这2个 组件 感觉有问题 app 上面
cc.CircleCollider 圆形碰撞组件 是没有问题的
可是 检查不能全是圆的吧 鱼不是胖子
@wangzhe @panda @dumganhar @jare
目前是直接创建 和 销毁 还没有 应用 对象池
后期再用
核心 就是 一个定时器 扫描鱼节点 更换鱼的 游动图 取代动画
先解决了 drawcall 再说