我正在使用javafx进行单屏幕,射击游戏/平台游戏的小游戏,我希望它能够在不同分辨率的屏幕上运行。我的所有图形都是由单个窗格中的java形状组成,其在屏幕上的位置由与像素对应的坐标确定。我需要游戏玩法在各个平台上保持一致,但是我遇到了麻烦,例如,在较小的分辨率下,每单位时间10像素的速度会更快。
我能用我所知道的唯一解决方案是将所有东西乘以某个常数和分辨率之间的比例,但这似乎有点草率,所以我想知道是否有更好的方法。例如,我可以让游戏以恒定的分辨率“内部”运行,以使数学保持一致,然后根据玩家正在使用的任何屏幕进行缩放吗?
答案 0 :(得分:0)
您在恒定比例分辨率下渲染的解决方案通常是如何处理不同的宽高比,在仿真器等中获得不同的处理方式。有时会显示更多的背景图像或添加侧边栏,以便可玩空间保持不变,并且只能放大视图。
总的来说,尽管使用现代硬件最好地完成这种方式可能会抽象掉像素'完全来自你的游戏层。你的游戏应该移动10,什么? 10个单位。然后,当您的渲染引擎进入它后面时,渲染器知道10个单位= 10px或20px或任何比例因子。这样你的游戏片段只会担心玩游戏,而你的渲染层则担心如何将它全部写入图像。然后你只需要担心处理不同的宽高比,无论如何你都必须考虑这些宽高比。
通常情况下,游戏中我唯一直接使用像素的是UI元素。