渲染游戏世界小于屏幕宽度和高度

时间:2016-06-09 21:06:51

标签: java user-interface libgdx screen viewport

我目前正在开发一款LibGDX手机游戏应用。我遇到的问题是我希望世界宽度和高度为480x480,屏幕宽度和高度为640x480。屏幕上额外的240个单元将用于渲染UI,有点像ROTMG或Clash Royale(游戏中的卡片视图)。

我曾考虑用另一台相机在游戏中渲染UI,但这不是我想要的设计风格。我希望游戏的逻辑和坐标在世界的宽度和高度范围内,而不是占用UI的额外空间。

我该怎么做?

P.S。游戏是2d

P.P.S。我想让游戏保持此配置调整大小。

2 个答案:

答案 0 :(得分:1)

Denfeet,创建一个带有2个Group实例的全屏舞台 - 其中一个用于UI,另一个用于游戏。组:游戏的界限是0,0,480,480.UI的界限是480,0,240,480。现在,如果你想在相对于游戏组的坐标中工作,例如,调用Group.localToStageCoordinates(Vector2 localCoords)游戏小组(或者让自己成为帮助方法,这样你就不必继续写这个长名字)。 UI和游戏逻辑也可以通过这种方式保持完全分离 - 魔术: - )。

答案 1 :(得分:0)

我总是喜欢将我的游戏与UI区分开来。您可以全屏创建一个摄像头,并使用Scene2D舞台将UI放在其上。除非您想要精确的尺寸,否则您不必担心定位,因为您只是覆盖了UI元素。如果你想为你的游戏使用一个舞台,那么只需创建第二个舞台,一个用于游戏,一个用于UI。

无论如何,看起来你在考虑像素。您的游戏不需要了解像素,也不需要了解游戏世界的渲染量。如果我有一个10 x 10单位大的图块,并且我想向玩家展示一个10x10个正方形图块,我会为它创建一个new FitViewport(100, 100)Viewport计算正在运行的设备上的世界单位。这使得您或任何从事您的计划的人更合乎逻辑。我的播放器不是256 pixels高,因为这是图像的高度,我的播放器没有1,80m高并使用图像显示。如果他想像忍者一样跳跃,他应该跳过另一名球员说2m并且他落在9.8m/s