CocosCreator之KUOKUO带你做小明有一万个苹果(6)

本次引擎2.0.5

编辑工具VSCode

如遇不会某个步骤可以先过一遍之前教程,或者下方评论,感谢支持!

目标:小明有一万个苹果

今天教大家学习预制资源与节点池;

我们肯定玩过射击类游戏,那许许多多的子弹,如果你一个一个弄会累死的。。。怎么办呢?

创建预制资源(就是一个模版);

然后我们用的时候用这个模版就行了。

好了,让我们先建个工程,顺手弄个单色背景:

保存场景为game;

好了,让我们创建一个红色的苹果(你们暂且认为它是苹果):

改了一下旋转度,大小;

好了,即将进行最重要的一步:脱下来!哦不,拖下来!

然后变成这样:

,好了,我们拥有了预制体哦!

然后我们弄个Label,代表小明!

怎么样,一个小明的苹果;但是我们的目标是一万个苹果!

别急,我们先1个个的来。

来,KUOKUO带你写脚本!

新建main.js然后绑定到Canvas上(总控制脚本)

好了,我们让脚本可爱起来!

接下来,我们声明一个apple类型为预制资源;

然后保存一下,把apple的预制资源拖过去:

然后写出克隆函数(就是按照预制资源的模版复制了一份);

把新克隆出来的apple也加入到this.node(就是绑定脚本的节点)

重新给个位置:

cc.Class({
    extends: cc.Component,

    properties: {
        apple:cc.Prefab,
    },

    onLoad () {
        // 克隆函数
        var apple = cc.instantiate(this.apple);
        this.node.addChild(apple);
        apple.x = 100;
        apple.y = 200;
    },

    start () {

    },
});

怎么样,出来了吧!

好了,小明现在有两个苹果,我们的目标是一万个,好多呀,怎么办?

我们弄个节点池,顾名思义,许多节点的池子!!!!!!(神解释)

cc.Class({
    extends: cc.Component,

    properties: {
        apple:cc.Prefab,
    },

    onLoad () {
        // 定义并创建一个节点池
        this.applePool = new cc.NodePool();
        // 数量为10000
        var initCount = 10000;
        for (var i = 0; i < initCount; ++i) {
            var apple = cc.instantiate(this.apple); // 克隆节点
            this.applePool.put(apple); // 通过 put函数把节点放入对象池
        }
        // 这是加入一万个苹果节点
        for (var i = 0; i < initCount; ++i) {
            // 通过get函数用一个取一个
            var apple = this.applePool.get();
            this.node.addChild(apple);
        }
        
    },
});

怎么样,小明弄出了10000个苹果哦;但是因为节点太多,可能会出现错误。

我们用改成100个苹果的程序运行来展示一下:

嗯,100个大苹果排列这,电脑性能好的小伙伴可以去试试10000个苹果。

好了,今天就学到这。

O(∩_∩)O~~

猜你喜欢

转载自blog.csdn.net/kuokuo666/article/details/84193196