捕鱼制作中 -----

调试一下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

@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 再说