调整窗口大小并移动内容

时间:2012-09-07 01:18:48

标签: java swing resize 2d-games

我有一个用java制作的简单游戏。从本质上讲,我的编程能力是相对基础的,我希望能够调整游戏窗口的大小,而不是让图像保持原样,只是在更大的区域显示白度。 Here's a Screenshot.有没有简单的方法吗?

3 个答案:

答案 0 :(得分:5)

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

调整游戏空间大小

一个射击游戏的空间并不一定很好。例如。当游戏的宽度是原来的两倍时,左/右箭头按下的速度应该是船速的两倍吗?垂直拉伸窗户会增加重力或拍摄速度吗?

填充游戏空间

我阅读问题的方式,您只是希望将游戏空间置于窗口中心。可以在this answer中看到E.G.s。

修复顶级容器的大小。

许多游戏都会修复大小以避免第一种方法产生的问题类型,并避免第二种方法的“大空白区域”。这就像调用setResizable(false)一样简单。

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

  1. 确保执行游戏渲染的组件设置了首选大小。
  2. 将它(以及所有其他控件)添加到框架中。
  3. 调用frame.pack()以确保框架的大小适合显示内容。
  4. (最后)致电frame.setResizable(false)

答案 1 :(得分:2)

要拉伸游戏,首先将其渲染为Image。然后立即拉伸图像。

Image dbImage; // The backbuffer
graphics.drawImage(dbImage, 0, 0, getWidth(), getHeight());

大多数游戏都喜欢禁用与我的引擎一起调整大小的窗口。

答案 2 :(得分:0)

根据我对您的问题的理解,您希望将游戏“拉伸”超出界限并将其扩展到窗口的其余部分。 (如果那是错的,哎呀:s)

为了实现这一目标,你必须做出一些决定。您可以将整个游戏缩放到框架,也可以只扩展背景。但是,根据你想要进入的方向,你必须做不同的事情。

最终,这个决定完全取决于你。

还有什么用来创建窗口?