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