2015-12-02 4 views
0

У меня проблемы с Tiled и Libgdx. Я делаю прокрутку платформы, и я пытаюсь сделать 1 (на данный момент) фон, который будет повторяться. Основная карта в Tiled состоит из различных изображений, уложенных один рядом друг с другом, как только я заполняю все ячейки, которые составляют полный фон (нормальный материал ..)Libgdx TiledMap отображает частичные плитки

Моя проблема связана с рендерингом, как вы можете видеть в изображения ниже, когда я перемещаю главного символа вправо, изображение внезапно исчезает, я знаю, что обработчик черепичной текстуры должен эффективно отображать только то, что вы увидите, но в этом случае я все еще вижу область, которую рендеринг просто прекращает рендеринг.

Как я могу заставить рендер ждать, пока плитка не выйдет из камеры, прежде чем она перестанет ее отображать?

Изображения:

Starting position is like at the middle of the first tile

Almost getting out of the first tile

Что касается кода я в основном с использованием кода в this tutorial, так как я в настоящее время только тестирование вещи, как это:

public class PlayScreen implements Screen { 

private OrthographicCamera camera; 
private Viewport viewport; 

private World world; 
private Box2DDebugRenderer b2dRenderer; 


// Map 

private TiledMap tiledMap; 
private OrthogonalTiledMapRenderer mapRenderer; 


public PlayScreen(PGame game) { 
    this.game = game; 
    camera = new OrthographicCamera(); 
    camera.setToOrtho(false, PGame.V_WIDTH, PGame.V_HEIGHT);  

    viewport = new FitViewport(PGame.V_WIDTH/Constants.PPM, PGame.V_HEIGHT/Constants.PPM, camera); 
    camera.position.set(viewport.getWorldWidth()/4, viewport.getWorldHeight()/2, 0); 

    // No gravity for now.. 
    world = new World(new Vector2(0, -0*9.81f), true); 
    b2dRenderer = new Box2DDebugRenderer(); 

    // create the box of the player seen in the image 
    ..... 


    TmxMapLoader loader = new TmxMapLoader(); 

    tiledMap = loader.load("backgrounds/1.tmx"); 
    float unitScale = 1/100f; 
    mapRenderer = new OrthogonalTiledMapRenderer(tiledMap, unitScale); 




} 

public void update(float delta) { 

    // handle input to move the b2d body 
    ..... 


    world.step(1/60f, 6, 2); 

    // Make the camera follow the player 
    camera.position.set(player.getPosition()); 

    camera.update(); 
} 

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

    Gdx.gl.glClearColor(0, 0, 0, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 


    mapRenderer.setView(camera); 
    mapRenderer.render(); 

    b2dRenderer.render(world, camera.combined); 

} 

}

+0

без кода никого не может вам помочь – george

+0

@george, как я уже упоминал выше, я использую практически тот же код, объясненный в вики LibGDX. Я разместил здесь код, а также отключил часть ненужного кода. Дайте мне знать, если это поможет вам помочь мне –

ответ

0

Проблема «решена». Я тестировал один и тот же код с другой картой, которая была сделана с меньшими наборами элементов, по-видимому, это происходит, если у вас слишком много плиток. В настоящий момент единственная проблема заключается в том, что появляются черные линии, но похоже, что прокладка отсутствует. Если кто-то испытывает что-то вроде этого, попробуйте с меньшими фрагментами.