Получить черный экран при использовании libgdx
У меня проблема с libgx. Когда я запускаю программу, появляется черный экран с зелеными прямоугольниками. Я не знаю, почему карта и игрок не отображаются или не отображаются на экране.
это мой код:
public class GamePlay implements Screen {
private MainGame game;
private OrthographicCamera mainCam;
private Viewport gameViewPort;
private TmxMapLoader mapLoader;
private TiledMap map;
private OrthogonalTiledMapRenderer renderer;
private Box2DDebugRenderer b2dr;
private World world;
private Player player;
public GamePlay(MainGame game){
this.game = game;
mainCam = new OrthographicCamera();
gameViewPort = new StretchViewport(GameInfo.WIDTH / GameInfo.PPM,
GameInfo.HEIGHT / GameInfo.PPM, mainCam);
mapLoader = new TmxMapLoader();
map = mapLoader.load("Screen1/Screen1.tmx");
renderer = new OrthogonalTiledMapRenderer(map, 1/GameInfo.PPM);
mainCam.position.set(gameViewPort.getWorldWidth() / 2,
gameViewPort.getWorldHeight() /2, 0 );
world = new World(new Vector2(0, -9.8f), true);
b2dr = new Box2DDebugRenderer();
player = new Player(world, 64, 280);
new B2WorldCreator(world, map);
}
@Override
public void show() {
}
public void handleInput(float dt){
if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
player.movePlayer(-2, 0);
} else if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) {
player.movePlayer(2,0);
}else if(Gdx.input.isKeyJustPressed(Input.Keys.SPACE)){
player.movePlayer(0, 6);
}else{
player.setWalking(false);
}
}
public void update(float dt){
handleInput(dt);
world.step(Gdx.graphics.getDeltaTime(), 6, 2);
mainCam.position.x = player.body.getPosition().x;
mainCam.update();
renderer.setView(mainCam);
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.render();
game.getBatch().setProjectionMatrix(mainCam.combined);
game.getBatch().begin();
player.drawPlayerIdle(game.getBatch());
player.drawPlayerAnimation(game.getBatch());
game.getBatch().end();
b2dr.render(world, mainCam.combined);
player.updatePlayer();
}
@Override
public void resize(int width, int height) {
gameViewPort.update(width, height, true);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
map.dispose();
renderer.dispose();
world.dispose();
b2dr.dispose();
}
}
и это экран, когда я запускаю программу: введите описание изображения здесь