Android 如何决定游戏的世界大小、视口和HUD
我正在制作一个游戏,具有静态游戏性(即固定背景)。 我希望目标设备的纵横比范围在1.33(800x600)到1.77(854x480)之间。 对于我的游戏区,我想要一个固定的纵横比。 对于我的HUD,我需要相对于Scrren尺寸的固定位置 我用阶段来实现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的视口应该是什么
- 注意此处世界大小指虚拟大小(如所述)
请原谅我的英语不好。首先:世界大小与视口大小(或下面文本中的虚拟大小)不同:
世界规模:级别的规模
虚拟大小:您可以在屏幕上看到的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中创建具有选定分辨率的视口。此答案为纯金。谢谢你。