CocosCreator之KUOKUO带你了解预制资源与对象池

本次引擎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~~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大家好我是阔阔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值