根据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
移动设备上的设备相同,但宽度和高度值为:
答案 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是否具有相同的要求。