美文网首页
CocosCreator-使用分帧创建对象

CocosCreator-使用分帧创建对象

作者: 程序猿TODO | 来源:发表于2021-04-01 09:37 被阅读0次

在Creator游戏开发中,一般是这样创建对象:

for (let i = 0; i < 10; i++) {
    let node = cc.instantiate(prefab);
    ...
}

上面代码本身没有问题,就是连续实例化10个对象。但在大量UI、动画同时出现时,却极有可能引起卡顿,因为实例化对象是个非常耗CPU的阻塞操作。

优化方法就是采用分帧执行,例如分成10帧来执行,即每一帧只实例化一个对象。使用JavaScript的setInterval函数实现如下:

let count = 10;
let timer = setInterval(() => {
    if (count-- > 0) {
        let node = cc.instantiate(prefab);
        ...
    } else {
        clearInterval(timer);
    } 
}, 0);

如果this指针是个组件对象,也可以使用Creator封装的schedule系列函数来实现:

let count = 10;
this.schedule(() => {
    let node = cc.instantiate(prefab);
    ...
}, 0, count-1, 0);

相关文章

  • CocosCreator-使用分帧创建对象

    在Creator游戏开发中,一般是这样创建对象: 上面代码本身没有问题,就是连续实例化10个对象。但在大量UI、动...

  • python 高阶知识

    python运行原理使用cpython解释器创建栈帧(堆),建立上下文,字节码对象由于栈帧分配在内存中,所以栈帧可...

  • 怎么优化列表使之流畅

    我作为面试官必问的。怎么使之流畅,fps接近60帧。 第一,对象创建,对象销毁,对象调整。 对象创建会消耗内存,c...

  • JavaScript基础—对象

    概论 对象基础 创建对象 利用字面量创建对象: 使用对象 利用new Object创建对象 使用对象方式与上面完全...

  • 原型链相关问题

    创建对象有几种方法 使用对象字面量的方式创建 使用构造函数创建对象 使用Object.create()方法创建 原...

  • java对象的创建、内存布局&访问过程解析学习笔记

    前言: 了解java对象从创建、存储&怎么被使用的整个过程十分重要 对应过程则是:对象创建、对象内存布局、对象访问...

  • JVM:Java对象的创建、内存布局 & 访问定位 全过

    前言 了解 Java 对象从被创建、存储 & 怎么被使用的整个过程十分重要 对应过程则是:对象创建、对象内存布局、...

  • iOS开发中创建对象的两个方法对比

    1.使用new 来进行对象的创建. 2.使用alloc 和 Init 来创建对象. 使用new来创建对象,系统会直...

  • 类和对象

    创建对象 在C中,当使用Studet stu;创建对象时,创建的对象在栈中。使用Student *pStudent...

  • 06-Java反射面试题(11题)

    1、除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2、Java反射创建对...

网友评论

      本文标题:CocosCreator-使用分帧创建对象

      本文链接:https://www.haomeiwen.com/subject/phkrhltx.html