LibGdx - спрайты, движущиеся рядом с камерой

Я пытаюсь отобразить некоторые объекты в случайных местах на экране. Позиции появления в порядке, однако, когда я перемещаю объект игрока (на котором сфокусирована камера) и прохожу середину экрана (затем камера начинает двигаться), спрайты других объектов также перемещаются вместе со мной, чего я не хочу. .

Я пытался дать им позиции в мире, а не на экране, используя cam.unproject(position);, который преобразует позиции относительно экрана в позиции относительно игрового мира, но это тоже не сработало.

Они отображаются так же, как и все остальные спрайты в libgdx.

Это код, в котором я инициализирую объекты:

Texture zombie = new Texture("zombie.png");
    float x, y;
    for (int i = 0; i < enemy_amout; i++) {
        x = rm.nextFloat() * (mapWidth * 8f- zombie.getWidth());
        y = rm.nextFloat() * (mapHeight * 8f - zombie.getHeight());
        Vector3 position = new Vector3(x, y, 0);
        cam.unproject(position);
        enemies[i] = new Entity(zombie, position.x, position.y, 1);
    }

Вот как выглядит игра, когда я ее запускаю LibGdx - спрайты, движущиеся рядом с камерой

И вот как это выглядит после того, как я переместил персонажа игрока вправо. Как видите, они двигались рядом с камерой, но я хочу, чтобы они оставались на своих исходных позициях. LibGdx - спрайты, движущиеся рядом с камерой

unprojecting ничего не изменил, я получил тот же результат без этой строки кода

Grual 11.05.2018 02:46

batch.begin (); player.draw (партия); для (Entity e: враги) e.draw (партия); batch.end (); Как я уже сказал, обычный рендеринг спрайтов

Grual 11.05.2018 14:11

Вы используете одну камеру для всего и применяете ее матрицу к партии?

Tenfour04 11.05.2018 14:22

Я использовал одну камеру, но не наносил ее матрицу на серию. Добавление batch.setProjectionMatrix (cam.combined); исправил мою проблему, поэтому спасибо, но теперь все мои спрайты огромны без причины.

Grual 11.05.2018 16:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
227
0

Другие вопросы по теме