弹跳墙壁

这是 Phaser 游戏开发教程 的第 6 步,共 16 步。你可以在 Gamedev-Phaser-Content-Kit/demos/lesson06.html 找到完成本课后代码应该是什么样子。

现在物理引擎已经引入,我们可以开始在游戏中实现碰撞检测 - 首先,我们将看看墙壁。

从世界边界弹跳

让球从墙壁上弹跳的最简单方法是告诉框架我们希望将 <canvas> 元素的边界视为墙壁,并且不让球穿过它们。在 Phaser 中,可以使用 collideWorldsBound 属性轻松实现这一点。在现有的 game.physics.enable() 方法调用之后添加此行

js
ball.body.collideWorldBounds = true;

现在球会在屏幕边缘停止而不是消失,但它不会弹跳。要使其发生弹跳,我们必须设置其弹性。在上一行下方添加以下行

js
ball.body.bounce.set(1);

再次重新加载 index.html - 现在你应该会看到球从所有墙壁上弹跳并在画布区域内移动。

比较你的代码

你可以在下面的实时演示中查看本课的完整代码,并与之交互以更好地理解其工作原理

后续步骤

现在看起来更像一个游戏了,但我们无法以任何方式控制它 - 是时候引入 玩家挡板和控制 了。