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
时,您会做两件事:
- 您将
s2d.width
和 s2d.height
设置为您在函数调用中设置的静态值。
- 由于
RenderContext
的操作方式,如果 s2d
大小与 window 大小不匹配,它会被拉伸以填满整个屏幕。
很可能您希望它不会缩放并保持静态大小,即使在 window 调整大小时也是如此。目前不可能。 setFixedSize
的文档指出它会阻止自动调整场景大小,而且它确实这样做了,它通过拉伸场景而不是调整它的大小来匹配 window 大小。 (是的,虽然它确实如其所言,但很容易被误解)
a PR pending 重新设计了 s2d 的缩放,这将弃用 setFixedSize
并将提供更好的一般缩放解决方案。
在下面的代码中,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
大小与 window 大小不匹配,它会被拉伸以填满整个屏幕。
很可能您希望它不会缩放并保持静态大小,即使在 window 调整大小时也是如此。目前不可能。 setFixedSize
的文档指出它会阻止自动调整场景大小,而且它确实这样做了,它通过拉伸场景而不是调整它的大小来匹配 window 大小。 (是的,虽然它确实如其所言,但很容易被误解)
a PR pending 重新设计了 s2d 的缩放,这将弃用 setFixedSize
并将提供更好的一般缩放解决方案。