Heaps.io:h2d.Scene.setFixedMode无效

问题描述 投票:1回答:1

在以下代码中,s2d.setFixedSize()无效。场景的大小不会改变,调整屏幕大小仍然会改变它。

class Main extends hxd.App {
    var bgTile : h2d.Tile;

    override function init() {
        s2d.setFixedSize(500, 500);

        bgTile = h2d.Tile.fromColor(0xFFFFFF, s2d.width, s2d.height);
        new h2d.Bitmap(bgTile, s2d);
    }

    override function update(dt:Float) {
    }

    static function main() {
        new Main();
    }
}
haxe
1个回答
3
投票

很可能你误解了这个功能的作用。 (但由于文档以模糊的方式编写,这是可以理解的) 当你打电话给setFixedSize时,你会做两件事:

  1. 您将s2d.widths2d.height设置为您在函数调用中设置的静态值。
  2. 由于RenderContext如何操作,如果s2d大小与窗口大小不匹配,它将被拉伸以填满整个屏幕。

很可能你预计它不会缩放并保持静态大小,即使窗口调整大小。目前不可能。 setFixedSize的文档声明它可以防止自动场景调整大小,它确实通过拉伸场景而不是调整大小以匹配窗口大小来实现。 (是的,虽然它做了它所说的,但很容易误解)

a PR pending重做s2d的缩放,这将弃用setFixedSize并将提供更好的缩放解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.