Phaser: 碰撞和屏幕边界

本文是《Phaser 系列》的一部分。点击这里查看系列的第一篇文章。 你可以检测到物理启用的物体之间的碰撞。 Phaser 为我们提供了两个方便的方法来开始。 我们有 collider 和 overlap。两者都可以让我们检测对象是否接近彼此,但有一个区别:collider 在物体相遇时会自动使其反弹,而 overlap 允许物体彼此重叠。 以下是如何添加一个 collider: const collisionHappened = (dog, cat) => { projectile.destroy() } this.physics.add.collider(dogs, cats, collisionHappened, null, this) 以下是如何添加一个 overlap: const overlapHappened = (dog, cat) => { projectile.destroy() } this.physics.add.overlap(dogs, cats, collisionHappened, null, this) 您还可以设置屏幕边界,使得物理对象在到达屏幕边缘时不消失。 调用物体的 setCollideWorldBounds() 方法,并传递 true 值: const dog = this.physics.add.sprite(20, 20, 'dog') dog.setCollideWorldBounds(true) 如果您还想在物体到达屏幕边界时使其反弹,调用: dog.setBounce(1) 您传递的数字将确定其反弹速度。试试设置为 0.5 或 1.5,您将看到物体以较小或较大的能量反弹。