Javascript 阶段3:摧毁一个精灵的所有实例

Javascript 阶段3:摧毁一个精灵的所有实例,javascript,phaser-framework,game-development,Javascript,Phaser Framework,Game Development,所以我试图让我的游戏卸载一堆未使用的资源。事实证明这要复杂得多。这是我的密码: var meteor = this.physics.add.group(); this.physics.add.collider(meteor, sput, deathControl, null, this); meteorSpawnFrequency = 500; setInterval(spawnMeteor, meteorSpawnFrequency); var meteorCap = 0; f

所以我试图让我的游戏卸载一堆未使用的资源。事实证明这要复杂得多。这是我的密码:

 var meteor = this.physics.add.group();
 this.physics.add.collider(meteor, sput, deathControl, null, this);

 meteorSpawnFrequency = 500;
 setInterval(spawnMeteor, meteorSpawnFrequency);
 var meteorCap = 0;

 function spawnMeteor() {  

 //Create Meteors
    meteorCap++;
    meteors = meteor.create(Math.floor(Math.random() *800) + 1, 30, "meteor");
    //Edit Meteors
    meteors.depth = -1;
    meteors.setVelocityY(500);
    meteors.setScale(Math.floor(Math.random() * 2) + 1);
    meteors.setCollideWorldBounds(true);

    //Destroy meteors after the cap reaches 10
    if(meteorCap > 10){

        meteors.destroy();
        console.log("meteors destroyed");
        meteorCap = 0;

    }
}
我正在使用一个间隔来产生精灵,所有的工作都很好。我想做的是设置一个上限,当100颗流星出现时,它们会被摧毁,然后上限被设置回0,重复这个过程。
唯一的问题是它不起作用。如何使其工作?

几乎可以肯定,这是一个范围问题,并且没有显示足够的源代码来确定根本原因。但是
meteorCap
看起来像局部变量一样危险,所以从
spawnMeteor
读取它是行不通的

另外,不要使用setInterval,Phaser API中确实内置了一个TimerEvents功能,这是游戏步骤安全的,可以为您管理范围上下文。一个这样的例子