【问题标题】:Libgdx TiledMap renders partial tilesLibgdx TiledMap 渲染部分瓦片
【发布时间】:2016-03-06 05:02:11
【问题描述】:

我在使用 Tiled 和 Libgdx 时遇到问题。我正在制作一个滚动平台游戏,我正在尝试制作 1 个(目前)会重复的背景。 Tiled 中的主地图由一个挨一个堆叠的各种图像组成,一旦我填充了构成完整背景的所有单元格(正常的东西..)

我的问题与渲染有关,如下图所示,当我将主角向右移动时,图像突然消失了,我知道平铺渲染器应该只有效地渲染您将看到的内容,但在此情况下我仍然看到渲染器刚刚停止渲染的区域。

如何让渲染器等到瓷砖离开相机后才停止渲染?

图片:

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);

}

}

【问题讨论】:

  • 没有代码没人能帮你
  • @george ,就像我上面提到的那样,我使用的代码几乎与 LibGDX wiki 中解释的代码相同。我把代码放在这里,还删掉了一些不必要的代码。如果这对您有帮助,请告诉我

标签: android libgdx render tiled tmx


【解决方案1】:

问题已“解决”。我用另一个用较小的瓦片集制作的地图测试了相同的代码,显然如果你的瓦片太大,就会发生这种情况。现在唯一的问题是出现了一些黑线,但这似乎是缺少填充。如果有人遇到这种情况,请尝试使用较小的瓷砖。

【讨论】:

    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多