Heaps.io:h2d.Scene.setFixedMode没有效果

Heaps.io: h2d.Scene.setFixedMode has no effect

在下面的代码中,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();
    }
}

您很可能误解了此函数的作用。 (但由于文档以模棱两可的方式编写,这是可以理解的)
当您调用 setFixedSize 时,您会做两件事:

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

很可能您希望它不会缩放并保持静态大小,即使在 window 调整大小时也是如此。目前不可能。 setFixedSize 的文档指出它会阻止自动调整场景大小,而且它确实这样做了,它通过拉伸场景而不是调整它的大小来匹配 window 大小。 (是的,虽然它确实如其所言,但很容易被误解)

a PR pending 重新设计了 s2d 的缩放,这将弃用 setFixedSize 并将提供更好的一般缩放解决方案。