首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >杀死一组中的所有元素(Phaser)

杀死一组中的所有元素(Phaser)
EN

Stack Overflow用户
提问于 2016-04-06 00:50:08
回答 1查看 3.4K关注 0票数 1

我有一个clouds组,它将产生两个云。每隔10秒,我就想杀死那些云,再生两颗云。你能一次杀死一群人的所有元素吗?

代码语言:javascript
运行
复制
var clouds;
var start = new Date();
var count = 0;

function preload(){
     game.load.image('cloud', 'assets/cloud.png');
}

function create(){
     clouds = game.add.group();
}

function update(){
     if(count < 10){
         createCloud();
     }
}

function createCloud(){
     var elapsed = new Date() - start;

     if(elapsed > 10000){
       var locationCount = 0;
       //Here is where I'm pretty sure I need to
       //kill all entities in the cloud group here before I make new clouds
       while(locationCount < 2){
             //for the example let's say I have a random number
             //between 1 and 3 stored in randomNumber
             placeCloud(randomNumber);
             locationCount++;
             count++;
        }
     }
}


function placeCloud(location){
     if(location == 1){
         var cloud = clouds.create(170.5, 200, 'cloud');
     }else if(location == 2){
         var cloud = clouds.create(511.5, 200, 'cloud');
     }else{
         var cloud = clouds.create(852.5, 200, 'cloud');
     }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-06 01:56:35

您应该能够执行以下操作之一来杀死组中的所有元素:

代码语言:javascript
运行
复制
clouds.forEach(function (c) { c.kill(); });

文档。或者更好,forEachAlive()

代码语言:javascript
运行
复制
clouds.callAll('kill');

文档

但是,我想知道您是否希望为此使用对象池,因为我认为如果您使用当前方法很长一段时间,可能会出现垃圾收集问题。

官方的编码提示7有一些关于使用池的信息(在他们的例子中是子弹)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36439565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档