游戏结束

这是Gamedev Phaser 教程16 步中的**第 8 步**。您可以在Gamedev-Phaser-Content-Kit/demos/lesson08.html找到完成本课后代码应有的样子。

为了使游戏更有趣,我们可以引入失败的功能——如果你没有在球到达屏幕底部边缘之前击中它,游戏就会结束。

如何失败

为了提供失败的功能,我们将禁用球与屏幕底部边缘的碰撞。在create()函数中添加下面的代码;在定义球的属性之后添加即可。

js
game.physics.arcade.checkCollision.down = false;

这将使三面墙(顶部、左侧和右侧)将球弹回,但第四面(底部)将消失,如果球拍错过,则让球从屏幕上掉落。我们需要一种方法来检测这种情况并相应地采取行动。在之前的新的代码下方添加以下几行。

js
ball.checkWorldBounds = true;
ball.events.onOutOfBounds.add(() => {
  alert("Game over!");
  location.reload();
}, this);

添加这些行将使球检查世界(在我们的例子中是画布)边界并执行绑定到onOutOfBounds事件的函数。当您点击弹出的警报时,页面将重新加载,以便您可以重新开始游戏。

比较您的代码

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

后续步骤

现在基本的游戏玩法已经到位,让我们通过引入需要击碎的砖块来使其更有趣——现在是时候构建砖块区域了。