在以下代码中,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();
}
}
答案 0 :(得分:3)
很可能您误解了此功能的作用。 (但这是可以理解的,因为文档是用不明确的方式编写的)
致电setFixedSize
时,您会做两件事:
s2d.width
和s2d.height
设置为在函数调用中设置的静态值。RenderContext
的工作方式,如果s2d
的大小与窗口大小不匹配,它将被拉伸以填满整个屏幕。您很可能希望它即使在调整窗口大小后也不会缩放并保持静态大小。目前不可能。 setFixedSize
的文档指出,它阻止了自动调整场景大小,并且确实做到了这一点,方法是拉伸场景而不是调整场景大小以匹配窗口大小。 (是的,尽管它按照它的意思行事,但很容易造成误解)
有a PR pending可以重新构建s2d的缩放比例,这将弃用setFixedSize
,并为一般缩放提供更好的解决方案。