在以下代码中,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
时,你会做两件事:
s2d.width
和s2d.height
设置为您在函数调用中设置的静态值。RenderContext
如何操作,如果s2d
大小与窗口大小不匹配,它将被拉伸以填满整个屏幕。很可能你预计它不会缩放并保持静态大小,即使窗口调整大小。目前不可能。 setFixedSize
的文档声明它可以防止自动场景调整大小,它确实通过拉伸场景而不是调整大小以匹配窗口大小来实现。 (是的,虽然它做了它所说的,但很容易误解)
有a PR pending重做s2d的缩放,这将弃用setFixedSize
并将提供更好的缩放解决方案。