0

我正在使用 libgdx 开发游戏。我有一个 samsung infuse 4g,我的电脑上的游戏看起来很大,但在我的手机上看起来像我想要的样子。

但是当我在 Eclipse 上的 android 机器模拟器上运行应用程序时,它在我的电脑上看起来像:

我正在使用 API_7,但我不明白为什么。我的角色大小是 128px,64px。我正在使用宽边,当我使用 libgdx 创建舞台时,我放了这个。

stage = new Stage(Gdx.graphics.getWidth(),Gdx.graphics.getHeight(),true);
4

1 回答 1

1

如果分辨率较高,您的角色会变小,因为您的舞台始终具有最大分辨率,但您的角色仍保持其大小。例如,将角色和舞台的大小调整为 procentual,它应该看起来相同。否则,您需要提供更多信息,以便我们提供帮助

一个小例子就是。如果您的分辨率为 1280x640,您的字符将是屏幕的 10%,对吗?现在想象一下分辨率是 640x320。您的角色将占屏幕的 20%。所以你需要让它更小才能在较小的屏幕上具有相同的比例。

在更大的情况下,您需要以相同的比例使其更大。使用

    @Override
    public void resize(int width, int height) {
..... //resize here depending on the width and the height
    }

在您的屏幕上调整大小。我建议使用OrthographicCamera你给你的舞台stage.setCamera(cam);。所以你只需要改变camera viewport调整大小,你的舞台就适合了。但要跟踪aspect_ratio.



您甚至可以开始使用固定分辨率。所以你有一个你可以使用的分辨率,其余的由zoom你的相机完成。
要获得固定分辨率,您可以使用相机放大和缩小以始终在screen. 这取决于您的屏幕分辨率。因此,如果分辨率较小(显示游戏的屏幕),则缩小以显示整个游戏区域。否则你放大直到在视口边缘有一个边缘。(puh这似乎是硬的东西)好吧,这看起来怎么样?

    @Override
    public void resize(int width, int height) {
        Gdx.app.log("Screen", "Resize screen: " + getName());
        cam.viewportHeight = height;
        cam.viewportWidth = width;
        if (Config.VIRTUAL_VIEW_WIDTH / cam.viewportWidth < Config.VIRTUAL_VIEW_HEIGHT
                / cam.viewportHeight) {
            cam.zoom = Config.VIRTUAL_VIEW_HEIGHT / cam.viewportHeight;
        } else {
            cam.zoom = Config.VIRTUAL_VIEW_WIDTH / cam.viewportWidth;
        }
        cam.update(); // update it ;)
    }

这实际上就是一切。VIRTUAL_VIEW_WIDTH和是我在游戏界面中使用的VIRTUAL_VIEW_HEIGHT分辨率。px注意使用正确的相机。所以这是我给我的舞台的相机。



也许看看这个博客。他确实解释了您需要了解的有关 Sceen2d 以及如何调整大小等的所有信息。

于 2013-05-07T14:30:11.600 回答