如何在 Godot 中使图像适合屏幕

How to make image fit screen in Godot

我是godot引擎的新手,我正在尝试制作手机游戏(仅限纵向模式)。我想让背景图片适合屏幕大小。我怎么做?我是否必须导入特定尺寸的图像并为各种屏幕实现它们?如果我将图像导入大,它只会切掉不适合屏幕的部分。 另外,在开发时,我应该为这些目的使用哪些宽度和高度值?

使用不同的屏幕尺寸总是有点复杂。由于屏幕尺寸、分辨率和宽高比的不同,尤其是对于手机游戏。

我能想到的最简单的方法是缩放 viewport. Keep in mind that your root node is always a viewport. In Godot you can stretch the viewport in the project settings (you have to enable the stretch mode option). You can find a nice little tutorial here

但是,视口拉伸可能会导致图像失真或边缘出现黑条。

另一种优雅的方法是创建一个比您的视口大的图像,并只定义一个区域,无论分辨率如何,该区域都必须在每个设备上显示。 Here有人在表达我的意思。

我真的无法回答你关于最佳宽度和高度的第二个问题,但我会寻找最典型的移动 phone 分辨率和比例,然后使用该设置。最后,您可能应该开始使用要用于测试和调试的 phone 的宽度和高度比率。

希望对您有所帮助。

使用 Godot 3,我可以使用脚本设置精灵/其他 UI 元素的大小和位置。我没有使用拉伸模式显示 window.

这里是您可以轻松地使 sprite 匹配视口大小的方法 -

var viewportWidth = get_viewport().size.x
var viewportHeight = get_viewport().size.y

var scale = viewportWidth / $Sprite.texture.get_size().x

# Optional: Center the sprite, required only if the sprite's Offset>Centered checkbox is set
$Sprite.set_position(Vector2(viewportWidth/2, viewportHeight/2))

# Set same scale value horizontally/vertically to maintain aspect ratio
# If however you don't want to maintain aspect ratio, simply set different
# scale along x and y
$Sprite.set_scale(Vector2(scale, scale))

同样针对移动设备,我建议导入大小为 1080x1920 的 PNG(您说的是肖像)。