缩放

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

缩放是指游戏画布在不同屏幕尺寸上的缩放方式。我们可以在预加载阶段自动使游戏适应任何屏幕尺寸,这样我们就不必在以后担心它。

Phaser 缩放对象

Phaser 中有一个特殊的 scale 对象,它提供了一些方便的方法和属性。更新现有的 preload() 函数,如下所示

js
function preload() {
  game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
  game.scale.pageAlignHorizontally = true;
  game.scale.pageAlignVertically = true;
}

scaleMode 有几个不同的选项可用于缩放画布

  • NO_SCALE - 不缩放。
  • EXACT_FIT - 缩放画布以填充垂直和水平方向的所有可用空间,不保持纵横比。
  • SHOW_ALL - 缩放画布,但保持纵横比不变,因此图像不会像在之前模式中那样变形。屏幕边缘可能会出现黑色条纹,但我们可以忍受它。
  • RESIZE - 创建与可用宽度和高度相同的画布,因此您必须在游戏中动态放置对象;这是一种更高级的模式。
  • USER_SCALE - 允许您自定义动态缩放,自行计算大小、比例和比率;同样,这是一种更高级的模式

preload() 函数中的另外两行代码负责将画布元素水平和垂直对齐,使其始终居中显示,无论大小如何。

添加自定义画布背景颜色

我们也可以为画布添加自定义背景颜色,使其不再是黑色。stage 对象有一个 backgroundColor 属性,我们可以使用 CSS 颜色定义语法来设置它。在前面添加的另外三行代码下面添加以下代码

js
game.stage.backgroundColor = "#eee";

比较你的代码

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

下一步

现在我们已经设置了游戏的缩放,让我们继续进行第三课,了解如何 加载资源并在屏幕上打印它们