libGDX如何设置游戏室大小?

时间:2017-03-02 14:50:00

标签: scala camera libgdx

我正在使用Scala& amp;进行2D侧滚动游戏。 libGDX。我的问题是我希望有一个固定的房间大小,比如4000px * 720px。

我希望窗口大小为1280px * 720px,我需要一台可以移动的正交相机,并显示“房间”/“地图”的正确部分。 问题是如何将房间大小设置为特定大小,然后使用正交相机显示其中的一部分?

目前我正在尝试使用本教程:https://github.com/libgdx/libgdx/wiki/Orthographic-camera

我可以在启动程序时设置窗口大小:

object DesktopLauncher {
    def main(args: Array[String]) {
        var config: LwjglApplicationConfiguration = new LwjglApplicationConfiguration
        config.foregroundFPS = 60
        config.width = 1280
        config.height = 720
     new LwjglApplication(new Controller, config)
    }
}

我可以像这样设置相机尺寸:

val h: Float = Gdx.graphics.getHeight()
val w: Float = Gdx.graphics.getWidth()

cam = new OrthographicCamera(100, 100 * (h / w))
cam.position.set(cam.viewportWidth / 2f, cam.viewportHeight / 2f, 0)

但是如何指定相机和房间大小为我想要的像素?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您希望相机在到达房间边缘时停止显示黑条(停止在房间边缘滚动)。我假设您使用的是Viewport。 (你应该) 以下是我的表现:

您需要使用Viewport#unproject()将屏幕坐标投影到世界坐标。您将窗口宽度投影到世界坐标,让我们调用此变量camWorldX。在移动相机之前,您需要检查是否camWorldX + 1 < roomWidth。如果true移动相机,则不要。对于否定说明,请取消投放0并检查是否camWorldX - 1 < 0。您可以将相同的逻辑应用于Y轴。

要了解有关LibGDX坐标系的更多信息,请click here。要详细了解Viewport#unproject()click here