如何在所有显示器和分辨率中保持Java游戏中的所有对象相同?

时间:2016-02-22 02:59:39

标签: java geometry coordinates

我是java的初学者,我在第一场比赛中工作:)

对于我的java游戏,我是否需要根据我的显示器设置来定位和调整所有内容?例如

定位和调整大小,我使用Point(x,y)

我宁愿做" ScaledPoint"其中" ScaledPoint"等于

public Point ScaledPoint(int x,int y)
{  
 return new Point(x*ScreenWidth/1680,y*ScreenHeight/1050);
}

因为我开发游戏世界的ScreenWidth和ScreenHeight是1680 * 1050像素?

在不同的分辨率下保持一致?我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

这是一个广泛的问题,但一般原则是在某种与设备无关的坐标中定义您的游戏空间,其单位小到足以容纳您预期的屏幕尺寸,然后是一些。

然后,根据显示尺寸缩放每个显示的坐标。缩放因子可能是用户可以配置的东西。

这里的目标是(在计算机科学和软件开发的许多情况下)将内容与其表示分开。您在内部工作的坐标对您有意义且一致,并将屏幕上的布局留给表示层。这为您提供了最大的灵活性,并简化了游戏引擎编程,因为您不必担心该级别的显示分辨率,仅在显示级别。

这个原则(关注点分离)就是为什么我们从网络的史前时代(20世纪90年代)转变为HTML,其中HTML决定了内容和布局,以及今天的HTML + CSS,其中HTML指定内容和CSS可以用于为不同的浏览器提供不同的信息。