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