随机化游戏玩法
这是 Gamedev Phaser 教程 16 个步骤中的第 16 步。我们的游戏看似已经完成了,但仔细观察就会发现,球在整个游戏中始终以相同的角度从球板上反弹。这意味着每局游戏都十分相似。为了解决这一问题并提高可玩性,我们应该让反弹角度更具随机性;本文将介绍具体做法。
让反弹更具随机性
我们可以根据球击中球板的确切位置改变球的速度。每次运行 hitPaddle() 方法时,使用如下代码修改 x 速度即可。现在将这行代码添加到你的代码中,然后试试看。
js
class ExampleScene extends Phaser.Scene {
// ...
hitPaddle(ball, paddle) {
this.ball.anims.play("wobble");
ball.body.velocity.x = -5 * (paddle.x - ball.x);
}
// ...
}
这里有一点巧思:球板中心与球击中位置之间的距离越大,新的速度就越高。此外,方向(向左或向右)也由这个值决定:如果球击中球板左侧,它会向左反弹;击中右侧时则会向右反弹。这一效果来自对给定数值进行的一些试验;你也可以自行尝试,看看会发生什么。当然,这并非完全随机,但确实能让游戏玩法更加难以预测,也更加有趣。
比较你的代码
以下是你目前应该得到的结果,可以实时运行。若要查看其源代码,请点击“运行”按钮。
总结
你已经完成了所有课程,恭喜!至此,你已经学习了 Phaser 的基础知识以及简单 2D 游戏背后的逻辑。
后续练习
你还可以在游戏中做更多事情:添加任何你认为能让游戏更有趣的内容。这只是对 Phaser 提供的众多实用方法的基础介绍。以下是一些扩展小游戏的建议,供你开始尝试:
- 添加第二个球或球板。
- 每次碰撞时改变背景颜色。
- 更换图像并使用你自己的图像。
- 当砖块被快速地连续摧毁时,给予额外奖励分数(或你选择的其他奖励)。
- 创建具有不同砖块布局的关卡。
务必查看不断增加的示例列表和官方文档。如果你需要帮助,也可以访问 Phaser Discourse 论坛。
你也可以返回本教程系列的索引页。