Phaser 3 阵列碰撞

Posted

技术标签:

【中文标题】Phaser 3 阵列碰撞【英文标题】:Phaser 3 array collison 【发布时间】:2020-12-01 19:18:58 【问题描述】:

在移相器 3 中,我使用重叠来检查碰撞。我的代码如下:

//bulletA is an array(one of the 2 arrays where collison is being checked) it contains all my bullet sprites
//enemy1 is an array containing all the enemies, which I am testing for collision with my bullets. It contains all my enemy sprites
this.physics.add.overlap(bulletA, enemy1, collide1, null, this);

碰撞检测工作正常(我在碰撞时使用 console.log 进行了测试)。但是,我需要能够分辨出enemy1 数组中的哪个特定敌人精灵与我的子弹相撞。这需要发生,以便我可以在敌人身上播放爆炸动画,然后从游戏中删除那个特定的动画。有什么方法可以获取使用重叠的数组的特定元素吗?

【问题讨论】:

ArcadePhysicsCallback 返回发生碰撞的对象。 photonstorm.github.io/phaser3-docs/… photonstorm.github.io/phaser3-docs/… 【参考方案1】:

overlap 函数接受一个回调,返回两个碰撞的对象https://photonstorm.github.io/phaser3-docs/Phaser.Physics.Arcade.ArcadePhysics.html#overlap

例如

overlap(bulletA, enemy1, collide1)

function collide1 (ob1, ob2) 
  // ob1 is the bullet that collided with the enemy
  // ob2 is the enemy that collided with the bullet

【讨论】:

感谢您的帮助!我没有意识到该函数返回了这些值。

以上是关于Phaser 3 阵列碰撞的主要内容,如果未能解决你的问题,请参考以下文章

H5中优化碰撞检测

Phaser 3 Collider 裁剪

什么是更有效的碰撞方式?

检测Phaser中精灵和位图之间的冲突

cocos creator基础-(二十)物理引擎碰撞检测

ue5怎么增添模型碰撞体积