我有一个用java制作的简单游戏。本质上,我的编程能力比较基础,我希望能够调整游戏所在窗口的大小,而不是让图像停留在原来的位置,而只是在更大的区域显示白度。这是一个屏幕截图。有什么简单的方法可以做到这一点吗?
问问题
1077 次
3 回答
5
现有的两个答案似乎假设您希望调整游戏空间的大小。
调整游戏空间
射击游戏的游戏空间不一定能很好地调整大小。EG 当游戏宽度加倍时,左/右箭头键是否应该使船快两倍?垂直拉伸窗口是否会增加重力或射击速度?
填充游戏空间
按照我阅读问题的方式,您只是希望将游戏空间置于窗口的中心。可以在这个答案中看到 EG 。
修复顶级容器的大小。
许多游戏固定大小以避免第一种方法产生的问题类型,并避免第二种方法周围的“大空白带”。这就像调用一样简单setResizable(false)
。
为了使这项技术发挥最佳效果:
- 确保进行游戏渲染的组件具有首选大小集。
- 将它(和所有其他控件)添加到框架中。
- 调用
frame.pack()
以确保框架的大小适合显示内容。 - (最后)打电话
frame.setResizable(false)
。
于 2012-09-07T01:42:07.600 回答
2
要拉伸游戏,首先将其渲染到Image
. 然后在立即拉伸图像的同时绘制图像。
Image dbImage; // The backbuffer
graphics.drawImage(dbImage, 0, 0, getWidth(), getHeight());
大多数游戏更喜欢禁用窗口大小调整以及我的引擎。
于 2012-09-07T01:30:01.620 回答
0
根据我对您的问题的理解,您希望将游戏“延伸”到边界之外并将其扩展到窗口的其余部分。(如果那是错误的,哎呀:s)
为了做到这一点,你必须做出一些决定。您可以将整个游戏缩放到框架,或者只是扩展背景。但是,根据您想要进入的方向,您将不得不做不同的事情。
最后,这个决定完全取决于你。
另外你用什么来创建窗口?
于 2012-09-07T01:25:43.990 回答