LibGDX: Не удается переместить камеру

#camera #libgdx #2d

Вопрос:

Обновить:

Итак, очевидно, что если я перемещу плеер и в то же время скажу камере переместиться на позицию игрока, то они оба переместятся. Итак, теперь я знаю, как перемещать плеер и камеру одновременно. Это достаточно просто. Однако я все еще не могу перемещать плеер и камеру независимо друг от друга, поэтому этот вопрос все еще открыт. Если это не так прямолинейно, как «установить камеру в это положение», то как я должен прокручивать камеру, масштабировать ее впереди или позади проигрывателя и т. Д.?

(P.S. Я думаю, что выбрал не ту область для занятий, лол. Нет ничего более неприятного, чем кодирование!)

вопрос:

Всем привет. Я новичок в StackOverflow, очень новичок в LibGDX и все еще относительно новичок в программировании. Я рано столкнулся с проблемой, которую не могу решить. Это включает в себя попытку переместить камеру в 2D-платформере. Камера вообще не движется. Сначала я опубликую только код, который напрямую относится к камере и рендерингу:

 
@Override 
public void show() {
    // initialize player, spriteBatch, map 
    mapRenderer = new OrthogonalTiledMapRenderer(map, (float) 1 / 16);
    camera = new OrthographicCamera();
    // camHorizontalTileNum = 30
    // camVerticalTileNum = 25
    camera.setToOrtho(false, camHorizontalTileNum, camVerticalTileNum);
    camera.update();
} // create

@Override
public void render(float delta) {
    Gdx.graphics.getGL20().glClear(GL20.GL_COLOR_BUFFER_BIT);
    
    // render before sprite batch
    if (Gdx.input.isKeyPressed(Input.Keys.A)) {
        camera.position.x -= 100 * Gdx.graphics.getDeltaTime();
    } // if
    if (Gdx.input.isKeyPressed(Input.Keys.D)) {
        camera.position.x  = 100 * Gdx.graphics.getDeltaTime();
    } // if
    if (Gdx.input.isKeyPressed(Input.Keys.W)) {
        camera.position.y  = 100 * Gdx.graphics.getDeltaTime();
    } // if
    if (Gdx.input.isKeyPressed(Input.Keys.S)) {
        camera.position.y -= 100 * Gdx.graphics.getDeltaTime();
    } // if
    if (Gdx.input.isKeyPressed(Input.Keys.SPACE)) {
        System.out.println("cam X: "   camera.position.x);
        System.out.println("cam Y: "   camera.position.y);
    } // if
    camera.update();

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

    spriteBatch.setProjectMatrix(camera.combined);
    spriteBatch.begin();
    player.draw(spriteBatch);
    spriteBatch.end();
} // render
 

Карта и спрайт игрока загружаются правильно. Когда я нажимаю клавишу ПРОБЕЛА, позиции камеры и плеера распечатываются, но положение камеры никогда не меняется, независимо от того, нажимаю ли я другие клавиши. Я также пытался реализовать движение игрока, но позиция игрока также никогда не меняется.

Класс, в котором это находится, расширяет адаптеру экрана. Я реализую show(), render(), hide () и dispose().

Что я здесь делаю не так? Любая помощь очень, очень ценится!

Комментарии:

1. Я не вижу в вашем фрагменте никакой причины для того, чтобы игрок также двигался. Я также предлагаю заменить Gdx.graphics.getDeltaTime() на just delta .