Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala libGDX如何设置游戏室大小?_Scala_Camera_Libgdx - Fatal编程技术网

Scala libGDX如何设置游戏室大小?

Scala libGDX如何设置游戏室大小?,scala,camera,libgdx,Scala,Camera,Libgdx,我正在用Scala和libGDX制作一个2D侧滚游戏。我的问题是我想要一个固定的房间大小,比如说4000px*720px 我希望窗口大小为1280px*720px,我需要一个正交摄像头,可以移动并显示“房间”/“地图”的正确部分。 问题是如何将房间大小设置为特定大小,然后使用正交摄影机显示房间的一部分 目前我正在尝试使用本教程: 我可以在启动程序时设置窗口大小,如下所示: object DesktopLauncher { def main(args: Array[String]) {

我正在用Scala和libGDX制作一个2D侧滚游戏。我的问题是我想要一个固定的房间大小,比如说4000px*720px

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

目前我正在尝试使用本教程:

我可以在启动程序时设置窗口大小,如下所示:

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)

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

如果我正确理解您的问题,您希望您的相机在到达房间边缘时停止显示黑色条(停止在房间边缘滚动)。我想你用的是一个。(你应该是) 我是这样做的:

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

要阅读有关LibGDX坐标系的详细信息,请执行以下操作:。要阅读有关
视口#unproject()
的更多信息,请执行以下操作