随机化游戏玩法

这是游戏开发 Phaser 教程的第 16 步(共 16 步)。您可以在Gamedev-Phaser-Content-Kit/demos/lesson16.html找到完成本课程后的代码示例。

我们的游戏似乎已经完成了,但如果你仔细观察,你会注意到球在整个游戏中以相同的角度从球拍上反弹。这意味着每场比赛都非常相似。为了解决这个问题并提高可玩性,我们应该使反弹角度更加随机,在本篇文章中,我们将探讨如何实现这一点。

使反弹更随机

我们可以通过在每次运行 ballHitPaddle() 函数时修改 x 速度来改变球的速度,具体取决于球击中球拍的精确位置,如下所示添加一行代码。现在将此新行添加到您的代码中,并尝试运行它。

js
function ballHitPaddle(ball, paddle) {
  ball.animations.play("wobble");
  ball.body.velocity.x = -5 * (paddle.x - ball.x);
}

这有点神奇 - 新速度越高,球拍中心与球击中球拍的位置之间的距离越大。此外,方向(左或右)由该值决定 - 如果球击中球拍的左侧,它将向左反弹,而击中右侧将使它向右反弹。最终结果是通过对给定值进行了一些实验后得出的,您可以进行自己的实验,看看会发生什么。当然,它并不完全随机,但确实让游戏玩法更加不可预测,因此也更加有趣。

比较您的代码

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

总结

您已经完成了所有课程 - 恭喜!到目前为止,您已经学习了 Phaser 的基础知识以及简单 2D 游戏背后的逻辑。

后续练习

您可以在游戏中做更多的事情 - 添加任何您认为能使游戏更有趣和更具吸引力的内容。这是一个基本的入门,只触及了 Phaser 提供的无数有用方法的表面。以下是一些关于如何扩展我们的小游戏的建议,以帮助您入门

  • 添加第二个球或球拍。
  • 每次击中时更改背景颜色。
  • 更改图像并使用您自己的图像。
  • 如果砖块被快速摧毁,连续多次(或您选择的其他奖励),则授予额外的奖励积分。
  • 创建具有不同砖块布局的关卡。

务必查看不断增长的示例列表和官方文档,如果您需要任何帮助,请访问Phaser Discourse 论坛

您也可以返回到本教程系列的索引页面