【问题标题】:How to decide WorldSize ,viewport for GamePlay and HUD如何决定 GamePlay 和 HUD 的 WorldSize、viewport
【发布时间】:2014-12-27 23:10:51
【问题描述】:

我正在制作一款游戏,具有静态游戏玩法(即固定背景)。 我想定位宽高比在 1.33(800x600) 到 1.77(854x480) 范围内的设备。 对于我的 playArea,我想要一个固定的纵横比。 对于我的 HUD,我想要相对于 Scrren Size 的固定位置 我正在使用阶段来实现HUD,游戏区域。

  • 注意这里的世界尺寸是指虚拟尺寸(如Springrbua所述)

第一个问题- 是否可以使用恒定的 worldsize 或设置一些 ViewPort(拉伸、填充等)来定位广泛的屏幕?

第二个问题 - 世界的像素大小应该是多少,以便我可以根据它创建图形?

第三个问题 - HUD、游戏玩法的视口应该是什么?

我的经历... 我用 WorldSize (855 x 600)Fill ViewPort 为 gamePlay 和 StretchViewPort 为 HUD 开始了一个游戏。到目前为止的游戏性很好,但是我在使用 HUD 时遇到了很多问题。无论我做什么,HUD 元素的位置都不会保持不变(无论屏幕大小如何,都是固定位置)。

最后一个 - 创建分辨率 855x600 的背景是否正确?

请建议更好的选择,方法或我做错了什么。

提前致谢。

对不起我的英语不好。

【问题讨论】:

  • 可能有点超出 StackOverflow 的范围。如果您继续使用 libgdx,那么我建议您访问gamedev.stackexchange.com,这可能会引起更多关注。
  • 我可以把这篇文章转移到gamedev.stackexchange.com吗?

标签: android ios mobile libgdx game-development


【解决方案1】:

首先:世界大小与视口大小(或下文中的虚拟大小)不同:
Worldsize:关卡的大小
虚拟尺寸:你可以在屏幕上看到的 levelpart/worldpart 的尺寸

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

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

正如您已经注意到的,有 Viewport 类,其中一些支持虚拟大小。
Viewport 您应该用于游戏区域的FitViewport,它支持虚拟大小并通过显示黑色边框来保持纵横比(例如,16/10 屏幕上的 16:9 纵横比将导致黑色边框位于屏幕的顶部和底部)。
对于HUD,你可以使用另一个Viewport,我猜StretchViewport 没问题。它还支持虚拟尺寸,但不是保持纵横比,而是拉伸事物(例如,16/10 屏幕上 16:9 虚拟纵横比的元素将向上和向下拉伸)以填充屏幕。

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

  1. 屏幕上有哪些实体?例如人类
  2. 它们在现实生活中有多大? 人类大约有 1.75m 高。
  3. 我希望它们在屏幕上显示多大? 人类应该是屏幕的 1/10 左右。

好的,现在 1.75m 应该是屏幕高度的 1/10。因此屏幕尺寸为1.75*10=17.5
为了让它更简单一点,让我们假设我们有更高(1.8m)的人类,所以我们的虚拟高度现在是18

现在想想纵横比,我想要一个 16/9 的纵横比,这意味着 16/9 = width/*18*
我们的虚拟宽度是 32
现在我们的虚拟大小为 32*18m。最大的优势:现在一切都可以以米为单位计算。如果您想将人类移动 1m,只需在其位置上加 1。

正如我已经说过的,Viewports 可以是游戏的FitViewport,因为你想保持纵横比,而对于 HUD,我猜StretchViewport 会很好,但你可以尝试不同的,然后选择你喜欢的。

希望对你有帮助。

【讨论】:

  • 感谢您的快速回复。而不是米,你能用像素告诉我,因为我的游戏不是真实世界,很难假设米的大小等等。像素的虚拟大小和背景图形分辨率大小?我认为 fillview 是比 fitview 更好的选择,没有人喜欢黑条..
  • FillView 占用了整个屏幕,但据我所知,其他方面的配给看到的屏幕较少,这对他们不利。在某些游戏中这是可以的,在某些游戏中可能不行。在 Pixels 中非常困难,因为您针对不同的分辨率,在不同的设备上,游戏玩法会有所不同。您可以选择一些您想要支持的分辨率,并让用户在设置中选择它们。然后根据选定的分辨率创建视口
  • 这个答案是纯金。谢谢你。
猜你喜欢
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多