У меня проблемы с 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);
}
}
без кода никого не может вам помочь – george
@george, как я уже упоминал выше, я использую практически тот же код, объясненный в вики LibGDX. Я разместил здесь код, а также отключил часть ненужного кода. Дайте мне знать, если это поможет вам помочь мне –