【发布时间】:2018-06-18 19:03:00
【问题描述】:
我正在开发一个使用 Javascript 的小项目,使用 Pixi.js 作为渲染引擎。但是,我只发现了几种将画布缩放到全窗口的方法,这些方法似乎最适合当前版本。但是,它确实有一个警告,因为它会根据方向在侧面生成信箱。
是否可以使用 Pixi 完全避免信箱?
这是我目前拥有的代码,因为它与缩放有关:
var application = null;
var GAME_WIDTH = 1060;
var GAME_HEIGHT = 840;
var ratio = 0;
var stage = null;
application = new PIXI.Application(
{
width: GAME_WIDTH,
height: GAME_HEIGHT,
backgroundColor: 0x00b4f7,
view: document.getElementById("gwin")
});
stage = new PIXI.Container(true);
window.addEventListener("resize", rescaleClient);
function rescaleClient()
{
ratio = Math.min(window.innerWidth / GAME_WIDTH, window.innerHeight /
GAME_HEIGHT);
stage.scale.x = stage.scale.y = ratio;
application.renderer.resize(Math.ceil(GAME_WIDTH * ratio), Math.ceil(GAME_HEIGHT * ratio));
}
我的目标是实现与 Agar.io/Slither.io 类似的全屏/窗口效果,但是我还没有找到一种令人满意的方法来轻松实现它。似乎确实有使用 Pixi 来实现此目的的示例,但代码通常是封闭源代码,而且它们似乎使用了 Ionic 和 Phonegap 等外部工具。
【问题讨论】:
-
不清楚您的期望是什么...保持纵横比而不裁剪图像会导致信箱。请更准确地解释或添加模拟预期结果的图片。
-
本质上,我想实现一个“真正的”全窗口效果,由 Agar.io 和 Slither.io 演示。我确实理解这两个似乎是在没有任何公共引擎、渲染或游戏的帮助下编写的,但是,根据我的研究,如果没有外部工具的帮助,这可能是不完全可能的。
-
那么
application.renderer.resize(window.innerWidth, window.innderHeight);呢? -
我确实尝试过,但它似乎使缩放无效并压扁了舞台。
-
@Merlin 更新答案
标签: javascript canvas pixi.js