如何正确更改屏幕尺寸

时间:2019-04-29 12:39:24

标签: libgdx screen viewport overlap2d

我是libGDX的新手,我想创建一个简单的图形界面,由于缺少图形编辑器,我很快发现自己陷入了困境。最后,我在Google上找到了Overlap2D,可以将其包含在我的项目中并运行它。但是,我对此框架有两个疑问:

1)它被遗弃了吗?建议使用它还是将很快废弃它?

2)我创建了一个包含四个图像的简单屏幕:

https://imgur.com/XeJhIFP

如果我增加屏幕的大小,会发生的情况是,墨滴不会根据先前的四个角定位自己,而是保持在原位置。

https://imgur.com/fKoimNU

我将发布我编写的代码。我该怎么办?

非常感谢

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Camera;
import com.badlogic.gdx.graphics.GL20;

import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.utils.viewport.ExtendViewport;
import com.badlogic.gdx.utils.viewport.FillViewport;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.StretchViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.uwsoft.editor.renderer.SceneLoader;
import com.uwsoft.editor.renderer.resources.ResourceManager;


public class MyGdxGame extends ApplicationAdapter {
    private SceneLoader sceneLoader;
        private ResourceManager rm;
    private Viewport viewport;
    private Camera camera;
    @Override
    public void create () {

        rm = new ResourceManager();
        rm.initAllResources();
    camera = new OrthographicCamera();
    viewport = new ExtendViewport(480 , 800, camera);
    viewport.apply();
    sceneLoader = new SceneLoader(rm);
    sceneLoader.loadScene("MainScene", viewport);
}

@Override
public void render () {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    camera.update();
    sceneLoader.getEngine().update(Gdx.graphics.getDeltaTime());
}

@Override
public void resize(int width, int height) {
    viewport.update(width, height);

}

}

1 个答案:

答案 0 :(得分:0)

  

1)它被遗弃了吗?建议使用它还是将很快废弃它?

如果您要制作基于图块的游戏,我真的建议您使用图块: https://www.mapeditor.org/

似乎overlay2D的进一步开发已经停止,但这不应该是不使用它的原因。如果您要制作包含不同大小和角度的平台的游戏,则可以使用它。

  

2)我创建了一个包含四个图像的简单屏幕:

您正在使用ExtendViewport。该视口通过沿一个方向提升世界来保持世界长宽比。在第二张图片中,您可以清楚地看到世界向右扩展。我认为您想要使用FitViewport,它将始终保持虚拟屏幕尺寸的长宽比,同时尽可能地缩放它以适合整个屏幕。