小白求教随机生成一个节点?

在练习碰撞组件的时候,希望生成不同图片带有不同的碰撞框,官方案例上有随机生成图片的案例,我修改了一下,我的想法是将带有不同碰撞框的不同图片作为节点放在预制资源里,然后预制资源随机生成一个节点
var Helpers = require(‘Helpers’);

cc.Class({
extends: cc.Component,

properties: {
    spriteList: {
        default: [],
        type: [cc.Node]
    }
},

// use this for initialization
onLoad: function () {
    var randomIdx = Helpers.getRandomInt(0, this.spriteList.length);
    var sprite = this.spriteList[randomIdx];
    
}

});
为什么不能够随机生成一个节点。

1赞

你这代码信息量太少了,你还是把demo贴上来最好

非常感谢,已经实现了,但不是原来的想法,是把不同图片做成不同的预制资源,谢谢,稍后会将游戏demo放上去请求指教的。

你可以给一个预制资源添加一个 Sprite 组件和一个 Collider 组件,然后在运行时 instantiate 出一个节点对象之后,根据你设置的 sprite frame 来动态设置 Collider 组件的配置。

你上面的代码中意义不大,如果你的 spriteList 是节点,这里你并不是一个生成对象的过程,而是简单的引用操作,思路有问题。另外,从 spriteList 获取出 sprite 之后,你也没有使用它,他并不会魔法般的就变成你想要的东西。

你应该只需要一个预制资源即可,Sprite 组件的 spriteFrame 属性和 Collider 组件的属性,都应该被动态设置

非常感谢,我会去努力实现的