Libgdx Caméra Orthographique position initiale
Je la caméra doit être positionnée correctement, mais j'obtiens le résultat ci-dessous:
Il semble que lorsque je redimensionner la fenêtre, la carte ne permet pas d'obtenir un rendu correct. Pourquoi est-ce arrivé?
Code:
public void render(float delta){
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
mapRenderer.setView(camera);
mapRenderer.render(background);
mapRenderer.render(foreground);
shapeRenderer.setProjectionMatrix(camera.combined);
//draw rectangles around walls
for(MapObject object : tiledMap.getLayers().get("walls").getObjects()){
if(object instanceof RectangleMapObject) {
RectangleMapObject rectObject = (RectangleMapObject) object;
Rectangle rect = rectObject.getRectangle();
shapeRenderer.begin(ShapeType.Line);
shapeRenderer.rect(rect.x, rect.y, rect.width, rect.height);
shapeRenderer.end();
}
}
//done drawing rectangles
}
@Override
public void resize(int width, int height) {
camera.viewportWidth = width;
camera.viewportHeight = height;
}
@Override
public void show(){
//call the tile map here
//I believe this is called first before render() is called
tiledMap = new TmxMapLoader().load("data/mapComplete.tmx");
mapRenderer = new OrthogonalTiledMapRenderer(tiledMap, 1f);
//initiate shapeRenderer. Can remove later
shapeRenderer = new ShapeRenderer();
shapeRenderer.setColor(Color.RED);
camera = new OrthographicCamera();
camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
OriginalL'auteur 1000Suns | 2014-02-20
Vous devez vous connecter pour publier un commentaire.
Cela devrait centre de la
camera
à laviewport
du jeu.viewport
centre. Si ce sont les mêmes c'est bien sinon, ce ne sera pas la solution.OriginalL'auteur jpm
Vous ne définissez pas la position de la caméra n'importe où. Ainsi, il est à la recherche à (0, 0) par défaut (ce qui signifie que (0, 0) sera au centre de votre écran). Le TiledMapRenderer rend le coin inférieur gauche de la carte (0, 0), ce qui signifie qu'il va remplir le supérieur droit quadrant de votre écran. C'est ce que vous voyez dans votre capture d'écran.
Pour le mettre au centre de la carte, vous pourriez faire quelque chose comme ce qui suit:
OriginalL'auteur noone