如何从 Phaser 3 中的组中获取单个成员?
How to get a single member from a group in Phaser 3?
在我的 Phaser 3 游戏中,我有一个名为 OBS 的组。现在我的游戏需要从 OBS 中随机获取一个成员并检测组成员(来自 OBS)与另一个名为 Player 的精灵之间的碰撞。我查阅了文档,但无法弄明白。
根据您提到的文档,您将找到如何将游戏 Object 添加到这样的组
var group = scene.add.group(config);
group.add(gameObject);
但事实上,如果你看一下 The Collider Callback Notes and The Physics Group Notes 创建一个有碰撞的组,你必须这样做
var group = this.physics.add.group();
this.physics.add.collider(player, group, myHandler);
每当玩家与您称为 OBS 的组发生碰撞时,这将触发 myHandler
函数,只需将 group
替换为其名称即 OBS
当然你必须启用 body 但我认为通过像这样添加组应该可以工作因为我实际上仍然在 Phaser 2 CE 的逻辑中并传递给 v3
现在回答你问题的第二部分,事实上,一个组可以被视为一个数组,实际上取决于你如何编码你的游戏,你将能够访问某个游戏 Object 在你的群组中 group.getChildren();
在我的 Phaser 3 游戏中,我有一个名为 OBS 的组。现在我的游戏需要从 OBS 中随机获取一个成员并检测组成员(来自 OBS)与另一个名为 Player 的精灵之间的碰撞。我查阅了文档,但无法弄明白。
根据您提到的文档,您将找到如何将游戏 Object 添加到这样的组
var group = scene.add.group(config);
group.add(gameObject);
但事实上,如果你看一下 The Collider Callback Notes and The Physics Group Notes 创建一个有碰撞的组,你必须这样做
var group = this.physics.add.group();
this.physics.add.collider(player, group, myHandler);
每当玩家与您称为 OBS 的组发生碰撞时,这将触发 myHandler
函数,只需将 group
替换为其名称即 OBS
当然你必须启用 body 但我认为通过像这样添加组应该可以工作因为我实际上仍然在 Phaser 2 CE 的逻辑中并传递给 v3
现在回答你问题的第二部分,事实上,一个组可以被视为一个数组,实际上取决于你如何编码你的游戏,你将能够访问某个游戏 Object 在你的群组中 group.getChildren();