如何让 Phaser 游戏自动填充窗口?

cur*_*nii 5 javascript phaser-framework

如何让 Phaser 游戏自动填充浏览器窗口?(理想情况下,如果窗口更改大小,则自动重新填充。)我知道有一个ScaleManager 类,但文档不清楚如何使用它。我还找到了其他说明,但它们没有指出在哪里添加他们建议的代码,并且在创建 Game 类后立即运行它似乎没有任何作用。

我目前正在使用本教程中的基本代码,但我愿意完全改变它。

cur*_*nii 4

事实证明非常简单,您只需要在预加载或创建函数中运行此代码(而不是像我一直在尝试的那样在创建游戏实例后立即运行)。

this.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
//this.scale.pageAlignHorizontally = true;
this.scale.pageAlignVertically = true;
this.scale.setScreenSize( true );
Run Code Online (Sandbox Code Playgroud)

请注意,如果您让游戏全屏显示,将 this.scale.pageAlignHorizo​​ntally 设置为 true 实际上会弄乱水平对齐。相反,您可以使用 css 将画布居中:

canvas { margin: 0 auto; }
Run Code Online (Sandbox Code Playgroud)

  • **this.scale.setScreenSize( true );** 在 Phaser 新版本中不起作用。那应该用什么呢? (2认同)