我试图将 tmx 地图加载到舞台类中,但是当我运行我的游戏时,屏幕没有显示任何关于地图的信息,只打印角色,我认为问题出在相机上,但不知道如何解决:
摘要屏幕:
public abstract class AbstractScreen extends Stage implements Screen{
protected AbstractScreen(){
//Crea un punto de vista por defecto
super(new StretchViewport(1024, 720));
}
/**
* que deberá ser implementado por cada pantalla de nuestro juego.
* Este método se utiliza para añadir los actores a cada escena
* (LibGDX Scene2d).
*/
public abstract void buildStage();
public abstract void dispose();
public void render(float arg0) {
/*
* Limpiamos la Screen
*/
//Con esto se define el color con el que se borrara el buffer al hacer un glClear()
//Rgb y alpha(transparecia)
Gdx.gl20.glClearColor(0, 0, 0, 1);
// limpiar el buffer depth, el buffer secundario,
//para que no tenga cosas previamente dibujadas
Gdx.gl.glClear(GL11.GL_COLOR_BUFFER_BIT);
//buildStage();
//llamada metodos stage
super.act(Gdx.graphics.getDeltaTime());
super.draw();
}
public void show() {
// TODO Auto-generated method stub
Gdx.input.setInputProcessor(this);
}
public void resize(int width, int height) {
getViewport().update(width, height, true);
}
public void hide() {}
public void pause() {}
public void resume() {}
}
屏幕:
public class SpriteScreen extends AbstractScreen implements InputProcessor {
//private SpriteActor mActor;
private Player jugador;
private TouchPadPlayer touchpad;
private TiledMap map;
private static OrthogonalTiledMapRenderer renderer;
private TiledMapTileLayer collision;
public SpriteScreen() {
this.jugador = new Player(getWidth() / 2, getHeight() / 2);
this.touchpad = new TouchPadPlayer();
this.touchpad.setPosition(100, 100);
this.map=new TmxMapLoader().load("assests/maps/example.tmx");
collision = (TiledMapTileLayer)map.getLayers().get("Colisiones");
renderer = new OrthogonalTiledMapRenderer(map, 1 / 16f);
}
@Override
public void buildStage() {
// TODO Auto-generated method stub
renderer.render();
Gdx.input.setInputProcessor(this);
addActor(this.jugador);
addActor(this.touchpad);
this.getCamera().update();
renderer.setView((OrthographicCamera) this.getCamera());
renderer.render();
}
@Override
public void dispose() {
// TODO Auto-generated method stub
map.dispose();
renderer.dispose();
}