所以,我有7个物理组,它们都相互碰撞,到目前为止,我的碰撞检测器是这样的:

this.physics.add.collider(this.photons, this.bottomQuarks);
    this.physics.add.collider(this.photons, this.charmQuarks);
    this.physics.add.collider(this.photons, this.downQuarks);
    this.physics.add.collider(this.photons, this.strangeQuarks);
    this.physics.add.collider(this.photons, this.topQuarks);
    this.physics.add.collider(this.photons, this.upQuarks);
    this.physics.add.collider(this.bottomQuarks, this.bottomQuarks);
    this.physics.add.collider(this.bottomQuarks, this.charmQuarks);
    this.physics.add.collider(this.bottomQuarks, this.downQuarks);
    this.physics.add.collider(this.bottomQuarks, this.strangeQuarks);
    this.physics.add.collider(this.bottomQuarks, this.topQuarks);
    this.physics.add.collider(this.bottomQuarks, this.upQuarks);
    this.physics.add.collider(this.charmQuarks, this.charmQuarks);
    this.physics.add.collider(this.charmQuarks, this.downQuarks);
    this.physics.add.collider(this.charmQuarks, this.strangeQuarks);
    this.physics.add.collider(this.charmQuarks, this.topQuarks);
    this.physics.add.collider(this.charmQuarks, this.upQuarks);
    this.physics.add.collider(this.downQuarks, this.downQuarks);
    this.physics.add.collider(this.downQuarks, this.strangeQuarks);
    this.physics.add.collider(this.downQuarks, this.topQuarks);
    this.physics.add.collider(this.downQuarks, this.upQuarks);
    this.physics.add.collider(this.strangeQuarks, this.strangeQuarks);
    this.physics.add.collider(this.strangeQuarks, this.topQuarks);
    this.physics.add.collider(this.strangeQuarks, this.upQuarks);
    this.physics.add.collider(this.topQuarks, this.topQuarks);
    this.physics.add.collider(this.topQuarks, this.upQuarks);
    this.physics.add.collider(this.upQuarks, this.upQuarks);

我觉得循环可能会对此有所帮助,但我不确定我将如何实现这一点,我想添加更多的物理组,所以有没有任何方式来压缩物理对撞机?

推荐答案

当然,您可以只将应该冲突的游戏对象/列表放入数组中,如下所示:

this.physics.add.collider(
    [this.photons, this.bottomQuarks, this.charmQuarks, ...],
    [this.photons, this.bottomQuarks, this.charmQuarks, ...]);

you just have to only pick the list, that should collide with each other.
(link to the documentation)

Javascript相关问答推荐

foreach循环中的Typescript字符串索引

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

使用print This时, map 容器已在LeafletJS中初始化

使用下表中所示的值初始化一个二维数组

JQuery. show()工作,但. hide()不工作

如何让npx在windows中运行js脚本?

如何解决useState错误—setSelect Image不是函数''

优化Google Sheet脚本以将下拉菜单和公式添加到多行

如何在ASP.NET中使用Google Charts API JavaScript将条形图标签显示为绝对值而不是负值

Reaction Native中的范围滑块

使用getBorbingClientRect()更改绝对元素位置

如何将zoom 变换应用到我的d3力有向图?

如何使用基于promise (非事件emits 器)的方法来传输数据?

每次重新呈现时调用useState initialValue函数

使用线性插值法旋转直线以查看鼠标会导致 skip

使用可配置项目创建网格

如何在每隔2分钟刷新OKTA令牌后停止页面刷新

未捕获的不变违规:即使在使用DndProvider之后也应使用拖放上下文

我如何才能获得价值观察家&对象&S的价值?

找不到处于状态的联系人