赢得游戏

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

在我们的游戏中实现获胜非常简单:如果您碰巧摧毁了所有砖块,那么您就赢了。

如何获胜?

将以下新代码添加到您的 ballHitBrick() 函数中

js
function ballHitBrick(ball, brick) {
  brick.kill();
  score += 10;
  scoreText.setText(`Points: ${score}`);

  let count_alive = 0;
  for (let i = 0; i < bricks.children.length; i++) {
    if (bricks.children[i].alive) {
      count_alive++;
    }
  }
  if (count_alive === 0) {
    alert("You won the game, congratulations!");
    location.reload();
  }
}

我们使用 bricks.children 遍历组中的砖块,使用每个砖块的 .alive() 方法检查每个砖块是否还活着。如果没有剩余的砖块还活着,那么我们将显示获胜消息,并在警报消失后重新开始游戏。

比较您的代码

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

后续步骤

失败和获胜都已实现,因此我们游戏的核心玩法已完成。现在让我们添加一些额外的东西——我们将为玩家提供三次 生命,而不是一次。