2016-07-09 6 views
0

Здравствуйте :)LibGDX: не удается визуализировать TiledMap с видовым

Недавно я начал программирование в LibGDX. Теперь im 4 дня застряли в рендеринге TiledMap в Viewport. Я не могу понять это, но я знаю, что это возможно. Вот как тестирование TiledMap выглядит:

Testing tiled map

Как игра выглядит сейчас (без плитки не показывать):

The PlayScreen now (No tiles showing) Screen is blue becouse of ClearColor code down below.

И вот мой код в экране воспроизведения:

public class PlayScreen implements Screen, InputProcessor{ 
    MainGame game; 

    private OrthographicCamera camera; 
    private Viewport gamePort; 

    private OrthogonalTiledMapRenderer renderer; 


    public PlayScreen(MainGame game) { 
     this.game = game; 

     camera = new OrthographicCamera(); 
     gamePort = new StretchViewport(MainGame.V_WIDTH/MainGame.PPM, 
       MainGame.V_HEIGHT/MainGame.PPM, camera); 
     renderer = new OrthogonalTiledMapRenderer(LevelManager.tiledMap, 
       1/ MainGame.PPM); 
     camera.position.set(gamePort.getWorldWidth()/2, gamePort.getWorldHeight()/2, 0); 

     Gdx.input.setInputProcessor(this); 
    } 

    @Override 
    public void show() { 

    } 

    public void update(float delta){ 
     camera.update(); 
    } 

    @Override 
    public void render(float delta) { 
     update(delta); 

     Gdx.gl.glClearColor((float)66/255, (float)66/255, (float)255/255, 0f); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

     renderer.setView(camera); 
     renderer.render(); 
    } 

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

    @Override 
    public void pause() { 

    } 

    @Override 
    public void resume() { 

    } 

    @Override 
    public void hide() { 

    } 

    @Override 
    public void dispose() { 

    } 

    @Override 
    public boolean keyDown(int keycode) { 
     return false; 
    } 

    @Override 
    public boolean keyUp(int keycode) { 
     return false; 
    } 

    @Override 
    public boolean keyTyped(char character) { 
     return false; 
    } 

    @Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
     return false; 
    } 

    @Override 
    public boolean touchUp(int screenX, int screenY, int pointer, int button) { 
     return false; 
    } 

    @Override 
    public boolean touchDragged(int screenX, int screenY, int pointer) { 
     return false; 
    } 

    @Override 
    public boolean mouseMoved(int screenX, int screenY) { 
     return false; 
    } 

    @Override 
    public boolean scrolled(int amount) { 
     return false; 
    } 
} 

LevelManager.tiledMap загружается в метод create в классе MainGame, поэтому я загружаю его просто отлично, но он не показывает на экране. Это происходит, когда я не использую Viewport.

Спасибо всем за помощь в будущем :)

+0

Если ваши константы в MainGame являются целыми числами, отбросьте их к плавающим в вашем конструкторе видового экрана. – Tenfour04

ответ

0

Я кладезь эту проблему, это был becouse PPM (Пиксели на метр) в классе MainGame, были в формате Integer, и он должен быть Float , иначе карта не будет отображаться из-за проблем разделения при масштабировании.