Facebook即时游戏中Phaser画布的正确比例是多少

时间:2018-05-13 12:06:52

标签: facebook phaser-framework

根据https://pexpect.readthedocs.io/en/stable/和这个问题this tutorial我使用window.innerWidth和window.innerHeight来定义Phaser 2 CE游戏中的区域。

但是,当我在桌面和移动设备上显示我的画布比例时,有两对不同的值,我必须在new Phaser(...)指令中使用的正确值是什么,我是否有使用SHOW_ALL或其他比例值来在桌面和移动设备上扩展游戏?

var game = new Phaser.Game(window.innerWidth, window.innerHeigh, Phaser.AUTO, 'game', { preload: preload, create: create, update: update });

桌面上的那个:

https://stackoverflow.com/a/50300726/2107253

移动设备上的设备相同,但宽度和高度值为:

enter image description here

1 个答案:

答案 0 :(得分:0)

第一个问题的答案是,它实际上取决于所使用的设备。

这就是为什么在链接到Emanuele的教程中使用以下代码的原因:

var windowWidth = window.innerWidth;
var windowHeight = window.innerHeight;
if (windowWidth > windowHeight) {
    windowWidth = windowHeight / 1.8;
}
var gameWidth = windowWidth * gameOptions.gameHeight / windowHeight;
game = new Phaser.Game(gameWidth, gameOptions.gameHeight, Phaser.CANVAS);

他正在抓取设备的宽度/高度,并将其用于游戏显示,而不是硬编码特定值。

要回答第二个问题,是的,如果您希望游戏充满整个屏幕,通常使用Phaser.ScaleManager.SHOW_ALL。据我了解,某些平台(例如iOS)“要求”要通过审核没有黑条,但我不知道Facebook Instant Games是否具有相同的要求。