2016-11-15 109 views
0

我正在用javafx制作一个单屏,shoot'em up/platformer排序的小游戏,并且我希望它能够在不同分辨率的屏幕上工作。我所有的图形都是由单个窗格中的Java形状组成的,它们在屏幕上的位置由与像素对应的坐标确定。我需要游戏平台在整个平台上保持一致,但是我遇到了麻烦,例如,在较小的分辨率下,每单位时间10像素的速度会更快。用不同的分辨率制作游戏?

我能想到的唯一解决方案就是将所有东西都乘以某个常数和分辨率之间的比率,但这看起来有点草率,所以我想知道是否有更好的方法。举例来说,我能否以恒定的分辨率“内部”运行游戏以获得一致的数学运算,然后将其调整到适合玩家使用的任何屏幕?

+0

有一些相关的问题可以查看:[JavaFX全屏](http://stackoverflow.com/questions/16606162/javafx-fullscreen)和[javafx自动调整大小和按钮填充](http://stackoverflow.com /问题/ 23229149/JavaFX的自动调整大小和 - 按钮填充)。总的来说,这个问题过于宽泛,无法在这里明确地回答,因为许多方法可能会提供一个解决方案(例如,您可以统一缩放场景以填充可用区域,或者可以使用反应式布局设计根据分辨率和宽高比动态更改布局) 。 – jewelsea

回答

0

您在恒定比例分辨率下渲染的解决方案通常是如何处理不同纵横比以在仿真器等中获得不同处理。有时透露更多的背景图片或添加侧栏,以便可播放的空间保持不变,并且只能放大视图。

一般来说,尽管用现代硬件最好的完成方式可能是完全从游戏层抽象掉像素。你的游戏应该移动'10',10是什么? 10个单位。然后,当渲染引擎进入它后面时,渲染器知道10个单位= 10px或20px或任何比例因子。这样,你的游戏片段只会担心玩游戏,而渲染层则担心如何将它们全部写入图像。那么你只需要担心处理不同的长宽比,不管怎样,你都必须考虑这些比例。

通常在游戏中,我直接使用像素的唯一方法是使用UI元素。

+0

谢谢。目前正在实施你的建议。 – Tom

+0

很好地工作。再次感谢。 – Tom

相关问题