facebook - Facebook 即时游戏中 Phaser 画布的正确比例是多少
问题描述
根据本教程和这个问题https://stackoverflow.com/a/50300726/2107253我正在使用 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 });
桌面上的那个:
移动设备上的相同,但宽度和高度值为:
解决方案
您的第一个问题的答案是它实际上取决于所使用的设备。
这就是为什么在您链接到 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 是否有相同的要求。
推荐阅读
- python-3.x - Python 3 一起收集表格
- composer-php - 未定义的属性:Fxp\Composer\AssetPlugin\Repository\AssetVcsRepository::$verbos
- vhdl - 两个连续的信号分配(一个有延迟)如何在 VHDL 中工作
- javascript - 如何在所有 jsamine 测试之前运行脚本?
- ios - UIView pan 手势与系统手势冲突
- c# - 缺少刚体字段的引用异常和?? 操作员
- android - ScaleM() 方法更改 OpenGL ES 2.0/3.0 中的着色器效果
- javascript - TradingView 轻量级图表价格似乎无法正确缩放
- assembly - 汇编程序 GNU:小写到大写,反之亦然
- python - 如何使用 Jinja2 循环遍历相关表?