【问题标题】:How to i correctly detect object collisions in phaser 3?如何正确检测移相器 3 中的对象碰撞?
【发布时间】:2021-09-27 03:33:45
【问题描述】:

我有一个问题,我需要检测 2 个容器何时发生碰撞,但我的碰撞是在对象开始移动之前检测到的,即在屏幕上发生任何碰撞之前。 stopMovement() 回调在任何碰撞发生之前立即执行。有没有移相器专家可以帮忙?

 const move1 = setInterval(() => {
  container1.x += 1
}, 20);

const move2 = setInterval(() => {
  container2.x -= 1
}, 20);

this.gameInstance.physics.add.collider(container1, container2, this.stopMovement(move1, move2), null, this)

【问题讨论】:

    标签: javascript typescript phaser-framework


    【解决方案1】:

    在提供的代码中,您立即调用this.stopMovement(move1, move2),这就是移动停止的原因。

    正确的做法是创建一个函数或内联匿名函数,将其分配给this.gameInstance.physics.add.collider 回调。

    示例

    内联匿名函数

    this.gameInstance.physics.add.collider(container1, container2, () => this.stopMovement(move1, move2), null, this)
    

    分离函数

    function colliderCallbackHandler() {
      this.stopMovement(move1, move2)
    }
    
    this.gameInstance.physics.add.collider(container1, container2, colliderCallbackHandler, null, this)
    

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 1970-01-01
      • 2017-10-07
      • 2022-08-20
      • 1970-01-01
      • 2019-04-30
      • 2017-11-26
      • 1970-01-01
      • 2012-09-30
      相关资源
      最近更新 更多