如何在Godot

时间:2017-11-10 19:55:31

标签: godot

我是godot引擎的新手,我正在尝试制作手机游戏(仅限肖像模式)。我想使背景图像适合屏幕尺寸。我怎么做?我是否必须导入具有特定尺寸的图像并将其全部用于各种屏幕?如果我将图像导入到大图像中,它只会剪切掉不适合屏幕的部分。 另外,在开发时,我应该将这些宽度和高度值用于这些目的吗?

2 个答案:

答案 0 :(得分:3)

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

我能想到的最简单的方法是缩放viewport。请记住,您的根节点始终是视口。在Godot中,您可以在项目设置中拉伸视口(您必须启用拉伸模式选项)。你可以找到一个不错的小教程here

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

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

我无法真正回答关于最佳宽度和高度的第二个问题,但我会寻找最典型的手机分辨率和比率,并采用该设置。最后,您可能应该首先使用要用于测试和调试的手机的宽高比。

希望有所帮助。

答案 1 :(得分:0)

使用Godot 3,我可以使用脚本设置sprite /其他UI元素的大小和位置。我没有在显示窗口中使用拉伸模式。

在这里,您可以轻松地使精灵与视口大小匹配-

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。