Heaps.io:h2d.Scene.setFixedMode无效

时间:2019-04-21 20:48:58

标签: haxe

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

1 个答案:

答案 0 :(得分:3)

很可能您误解了此功能的作用。 (但这是可以理解的,因为文档是用不明确的方式编写的)
致电setFixedSize时,您会做两件事:

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

您很可能希望它即使在调整窗口大小后也不会缩放并保持静态大小。目前不可能。 setFixedSize的文档指出,它阻止了自动调整场景大小,并且确实做到了这一点,方法是拉伸场景而不是调整场景大小以匹配窗口大小。 (是的,尽管它按照它的意思行事,但很容易造成误解)

a PR pending可以重新构建s2d的缩放比例,这将弃用setFixedSize,并为一般缩放提供更好的解决方案。