gpt4 book ai didi

java - 使用硬编码坐标缩放游戏以适应任何屏幕?

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:52 24 4
gpt4 key购买 nike

我已经开发一个非常基本的 Java 游戏大约一个月了,但我遇到了一个大问题。它在任何显示器上都可以正常工作,只要该显示器的分辨率高于 1280 x 720,这就是我设置的游戏运行分辨率。直到我在 friend 的计算机上运行它并且它并不完全适合他的屏幕时,我才意识到这是一个问题。这里真正的问题是,我正在制作一种 2D 自上而下的射击游戏类型的游戏,并且每个级别中的墙壁和电源都有硬编码的坐标。我无法让所有内容都与屏幕尺寸相关,因为这不仅会非常困难,而且还会使游戏的难度甚至可能性随屏幕分辨率的变化而变化。我想一种解决方案是让它在 800 x 600 的分辨率下运行,然后缩小所有关卡,但这并没有我想要的那么多空间。

我想知道是否有办法调整我的程序以适应显示器。例如,如果我在 4:3 显示器上运行,例如我 friend 的 1024x768,我希望程序能够按比例适应屏幕(因此它的顶部和底部会有黑条,就像 4:3 显示器上的宽屏视频一样),但我也希望所有的墙壁和电源都放置在与新缩放的屏幕相关的位置。

是否有某种方法可以“拉伸(stretch)”或“收缩”程序中的像素,以便所有内容都可以很好地显示在窗口中并进行缩放?即使它不是字面意思。我感谢任何帮助。

最佳答案

假设您使用标准 Graphics/Graphics2D,您可以缩放绘画:

private static final double SCALE = 0.75;
private static final double INV_SCALE = 1.0 / SCALE;

@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.scale(SCALE, SCALE);
...
g2.scale(INV_SCALE, INV_SCALE);

}

比例因子(此处为 SCALE)当然更难设置。

鼠标坐标必须自行缩放。

关于java - 使用硬编码坐标缩放游戏以适应任何屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com