Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使我的800*600游戏适合所有屏幕分辨率?_Java - Fatal编程技术网

Java 如何使我的800*600游戏适合所有屏幕分辨率?

Java 如何使我的800*600游戏适合所有屏幕分辨率?,java,Java,我创建了一个800*600的游戏。我怎样才能使它适合所有的计算机屏幕?这通常是如何做到的?其他网站也表示,根据屏幕分辨率将所有内容设置为一定的比例。但是,如果游戏中的每个图像与屏幕分辨率相比都发生了变化,这意味着图像将不在正确的位置,并导致其他问题。有没有可能只是“伸展”我的800*600游戏,让它适合任何尺寸?谢谢是的,你可以伸展一下。将游戏的主要组件放在一个800乘600的JPanel上,并将该JPanel添加到JFrame中。然后播放器可以调整JFrame的大小,组件不会离开屏幕,它们将根

我创建了一个800*600的游戏。我怎样才能使它适合所有的计算机屏幕?这通常是如何做到的?其他网站也表示,根据屏幕分辨率将所有内容设置为一定的比例。但是,如果游戏中的每个图像与屏幕分辨率相比都发生了变化,这意味着图像将不在正确的位置,并导致其他问题。有没有可能只是“伸展”我的800*600游戏,让它适合任何尺寸?谢谢

是的,你可以伸展一下。将游戏的主要组件放在一个800乘600的JPanel上,并将该JPanel添加到JFrame中。然后播放器可以调整JFrame的大小,组件不会离开屏幕,它们将根据JFrame的新大小更改形状和大小。请记住,鼠标相对于JFrame的位置会发生一些变化,但将鼠标位置除以JFrames高度/宽度,然后乘以JPanel高度/宽度,即可得到相对于JPanel的位置。使用此方法,您可以让用户最大化您的游戏,并且仍然让组件看起来正常。

您需要使游戏分辨率独立。这意味着您可以创建自己的“游戏单元”概念(如果需要,可以与800x600屏幕上的像素完全相同),然后专门对这些游戏单元进行操作

每当你们在屏幕上画东西时,你们就把坐标和大小从游戏单位转换成像素。您需要具有可以双向转换的功能,因为您可能还希望将点击事件从屏幕空间转换为游戏空间


当你开始游戏时,你需要决定屏幕分辨率和纵横比。如果纵横比不同(如宽屏),您可以选择拉伸游戏区域或将其放置在信箱中。通过将所有翻译代码移动到较低的级别,并仅在游戏单元内操作,从长远来看,您可以省去很多痛苦。

他们正确地建议您,您应该使用一个比率,并且您的图像应该相应地调整大小/重新定位。如果没有,您必须重新考虑您的系统。查看全屏独家模式: