3

我有一个用java制作的简单游戏。本质上,我的编程能力比较基础,我希望能够调整游戏所在窗口的大小,而不是让图像停留在原来的位置,而只是在更大的区域显示白度。这是一个屏幕截图。有什么简单的方法可以做到这一点吗?

4

3 回答 3

5

现有的两个答案似乎假设您希望调整游戏空间的大小。

调整游戏空间

射击游戏的游戏空间不一定能很好地调整大小。EG 当游戏宽度加倍时,左/右箭头键是否应该使船快两倍?垂直拉伸窗口是否会增加重力或射击速度?

填充游戏空间

按照我阅读问题的方式,您只是希望将游戏空间置于窗口的中心。可以在这个答案中看到 EG 。

修复顶级容器的大小。

许多游戏固定大小以避免第一种方法产生的问题类型,并避免第二种方法周围的“大空白带”。这就像调用一样简单setResizable(false)

为了使这项技术发挥最佳效果:

  1. 确保进行游戏渲染的组件具有首选大小集。
  2. 将它(和所有其他控件)添加到框架中。
  3. 调用frame.pack()以确保框架的大小适合显示内容。
  4. (最后)打电话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 回答