Android 如何决定游戏的世界大小、视口和HUD

Android 如何决定游戏的世界大小、视口和HUD,android,ios,mobile,libgdx,game-development,Android,Ios,Mobile,Libgdx,Game Development,我正在制作一个游戏,具有静态游戏性(即固定背景)。 我希望目标设备的纵横比范围在1.33(800x600)到1.77(854x480)之间。 对于我的游戏区,我想要一个固定的纵横比。 对于我的HUD,我需要相对于Scrren尺寸的固定位置 我用阶段来实现HUD,游戏区域 注意此处世界大小指虚拟大小(如所述) 第一个问题-是否可以使用恒定的世界尺寸或设置一些视口-(拉伸、填充等)来定位大范围的屏幕 第二个问题-世界像素大小应该是多少,这样我才能根据它创建图形 第三个问题-HUD的视口应该是什么

我正在制作一个游戏,具有静态游戏性(即固定背景)。 我希望目标设备的纵横比范围在1.33(800x600)到1.77(854x480)之间。 对于我的游戏区,我想要一个固定的纵横比。 对于我的HUD,我需要相对于Scrren尺寸的固定位置 我用阶段来实现HUD,游戏区域

  • 注意此处世界大小指虚拟大小(如所述)
第一个问题-是否可以使用恒定的世界尺寸或设置一些视口-(拉伸、填充等)来定位大范围的屏幕

第二个问题-世界像素大小应该是多少,这样我才能根据它创建图形

第三个问题-HUD的视口应该是什么,游戏性

我的经验。。。 我用WorldSize(855 x 600)Fill ViewPort开始了一个游戏,用于游戏玩法和StretchViewPort用于HUD。到目前为止,游戏玩法不错,但我在HUD方面面临许多问题。无论我做什么,HUD元素的位置都不一样(固定位置,不考虑屏幕大小)

最后一个-正在创建分辨率背景855x600这样做正确吗

Plz建议更好的选择、方法或我做错了什么

提前谢谢


请原谅我的英语不好。

首先:世界大小与视口大小(或下面文本中的虚拟大小)不同:
世界规模:级别的规模
虚拟大小:您可以在屏幕上看到的levelpart/worldpart的大小

通常,您只能看到关卡的一部分,而
摄像头会向四周移动以显示不同的部分。
如果整个级别同时显示在屏幕上,则世界大小和虚拟大小相同。
为了使一切尽可能简单,他们应该使用相同的单位(例如米)

使用libgdx,不仅可以拥有固定的虚拟大小,而且非常简单

正如您所注意到的,有
Viewport
类,其中一些类支持虚拟大小到。
游戏区域应使用的
视口是
FitViewport
,它支持虚拟大小,并通过显示黑色边框来保持纵横比(例如,16/10屏幕上的16:9纵横比将导致屏幕顶部和底部出现黑色边框)。
对于HUD,您可以使用另一个
视口
,我想
拉伸视口
是可以的。它还支持虚拟大小,但不保持纵横比,而是拉伸内容(例如,16/10屏幕上16:9虚拟纵横比的元素将向上和向下拉伸)以填充屏幕

要选择的虚拟大小取决于游戏。就这样想吧:

  • 屏幕上有哪些实体?例如人类
  • 他们在现实生活中有多大人类大约1.75米高
  • 我希望它们在屏幕上有多大?一个应该是屏幕的1/10左右 好的,现在你有了1.75米,应该是屏幕高度的1/10。因此,屏幕大小为
    1.75*10=17.5

    简单一点,让我们假设我们有一个更高(1.8米)的人类,所以我们的虚拟高度现在是18

    现在想想纵横比,我想要一个16/9的纵横比,也就是说,
    16/9=width/*18*

    我们的虚拟宽度是32
    现在我们有了一个32*18m的虚拟大小。最大的优点是:现在一切都可以用米来计算。如果要将人移动1米,只需在其位置上添加1

    正如我allready所说,
    Viewport
    s对于游戏来说可以是
    FitViewport
    ,因为你想保持纵横比,对于HUD,我想
    StretchViewport
    可以,但是你可以尝试不同的,并选择你喜欢的


    希望有帮助。

    可能有点超出StackOverflow的范围。如果您继续使用libgdx,那么我建议您访问可能会引起更多关注的网站。我可以将此帖子转到gamedev.stackexchange.com吗?谢谢您的快速回复。因为我的游戏不是真实的世界,所以很难假设米的大小和所有这些。像素的虚拟大小和背景图形的分辨率大小?我认为fillview比fitview更好,没有人喜欢黑条。
    fillview
    占用了整个屏幕,但据我所知,其他方面看到的屏幕较少,这对他们不利。在某些游戏中这是可以的,在某些游戏中可能不是。以像素为单位是相当困难的,因为你的目标是不同的分辨率,在不同的设备上,游戏会有所不同。您可以选择要支持的某些分辨率,并让用户在“设置”中选择它们。然后在Mind中创建具有选定分辨率的视口。此答案为纯金。谢谢你。