2013-03-06 30 views
0

我创建了一个800 * 600的游戏。我怎样才能使它适合所有的电脑屏幕?这通常会如何完成?其他网站也表示,根据屏幕分辨率的不同,所有内容都会设置为一定的比例。但是,如果游戏中的每幅图像与屏幕分辨率相比都会改变大小,则意味着图像不会在正确的位置并导致其他问题。是否有可能“伸展”我的800 * 600游戏,以适合任何尺寸?谢谢如何让我的800 * 600游戏适合所有屏幕分辨率?

+1

他们建议你正确的,你应该使用一个比例,你的图片应该相应地调整大小/重新定位。如果没有,你必须重新考虑你的系统。 – fonZ 2013-03-06 22:18:41

+0

查看全屏独占模式:http://docs.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html – Aubin 2013-03-06 22:22:29

回答

0

是的,你可以伸出它。将游戏的主要组件放在800 x 600的JPanel上,然后将JPanel添加到您的JFrame中。然后玩家可以调整你的JFrame的大小,并且组件不会离开屏幕,它们将根据JFrame的新大小改变形状和大小。请记住,鼠标相对于JFrame的位置会发生一些变化,但将鼠标位置除以JFrames的高度/宽度并将其乘以JPanel的高度/宽度以获得与JPanel相关的位置。使用这种方法,您可以让用户最大化您的游戏并保持组件正常。

1

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

每当你绘制一些东西来屏幕你将游戏单位的坐标和大小转换为像素。您需要具有可以双向转换的功能,因为您可能还想将点击事件从屏幕空间转换为游戏空间。

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