libgdx - setProjectionMatrix - PullRequest
       56

libgdx - setProjectionMatrix

0 голосов
/ 25 мая 2018

Я пытаюсь визуализировать некоторые спрайты, и мне нужна строка batch.setProjectionMatrix(cam.combined);, чтобы спрайты перемещались независимо от камеры, однако, когда я добавляю эту строку, спрайты внезапно становятся необычно большими, но без этого они просто нормальные.,У меня есть подозрение, что это изменяет размеры мира или что-то в этом роде, потому что границы, которые я установил для спрайта игрока, также расширяются, как и размер спрайтов, но фон (мозаичное изображение, отображаемое с помощью OrthogonalTiledMapRenderer) остаетсято же самое.

Это нормальный рендеринг, как и должно быть: https://ibb.co/m4T2GT

Это рендеринг, который я получаю при использовании setProjectionMatrix: https://ibb.co/j0EL38

(я использовалвнешний сайт для картинок, потому что по какой-то причине я не мог добавить их сюда)

Это моя функция рендеринга.

player.draw (..);

и

e.draw (..);

просто вызовите функцию рисования класса Sprite.

public void render() {
    handleInput();
    renderer.setView(cam);
    renderer.render();

    batch.setProjectionMatrix(cam.combined);
    batch.begin();
    player.draw(batch);

    for (Entity e: enemies) e.draw(batch);

    batch.end();
}

1 Ответ

0 голосов
/ 27 мая 2018

Вы можете использовать число с плавающей запятой: cam.zoom, чтобы изменить размер всего, что появляется.Измените его в настройках или сразу после инициализации объекта камеры, тогда он должен оставаться при таком увеличении.

Если это не сработает, возможно, вам придется настроить отображение карты на матрицу проецирования камеры.

...