Phaser.js: 如何获取或移除一个场景中的所有精灵

Phaser.js: How to get or remove all sprites in one scene

我过去常常通过将它们推入 Phaser 内置 class 的数组或精灵组来处理一组精灵。但我正在寻找另一种简单的方法来获取或删除场景中的所有精灵。有没有人有解决这个问题的想法?非常感谢!

场景有 属性 children (link to documentation)

您可以获得所有精灵,使用命令:

// where this = the current scene
let allSprites = this.children.list.filter(x => x instanceof Phaser.GameObjects.Sprite);

然后 remove/destroy 全部,像这样:

allSprites.forEach(x => x.destroy());

只是遍历精灵列表,并对每个对象调用 destroy 函数。