2014-09-03 3 views
0

Я работаю над игрой сверху вниз с RPG, используя LibGDX, и создаю камеру Ortho .. для своей игры. Однако при этом теперь отображаются только мои текстуры плитки. Это как рендер выглядит код:libgdx spritebatch not rendering textures

Камера инициализируется new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

(обратите внимание, что camera. звонки на самом деле в методе world.update, я полагал, что позволит свести к минимуму объем кода, необходимого здесь)

Обновление/Rendering:

camera.position.set(getPlayer().getPosition().x, getPlayer().getPosition().y, 0); 
camera.update(); 
batch.setProjectionMatrix(world.getCamera().combined); 
batch.begin(); 
world.render(batch); 
batch.end(); 

метод визуализации в мире заканчивается вызовом этого:

public void render(SpriteBatch batch, float x, float y, float w, float h) { 
    batch.draw(region, x, y, w, h); 
} 

Где region является TextureRegion

Без камеры, все это работает просто отлично, так что я очень смущен, почему текстуры делают только для того, сейчас (мои плитки текстуры оказываются ниже лиц) Есть ли у кого-либо идея, почему это может быть? В случае, если вы хотите увидеть больше кода, у меня также есть это на моем github: CLICK HERE

+0

у вас есть несколько методов называются на 'камере ', но затем вы задаете матрицу проекций партии с помощью' world.getCamera'. Это одна и та же камера? – Tenfour04

+0

@ Tenfour04 Да, вызовы 'camera.' копируются из' world.update'. Я просто решил, что я скрою код, необходимый для продолжения здесь. – BossLetsPlays

ответ

0

Не удается получить большую часть кода, но используете ли вы это в корне рендеринга?

Gdx.gl.glClearColor(0, 0, 0, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
+0

Да, я все прекрасно работал, когда использовал один spritebatch для каждой текстуры , но потом я прочитал, что все может быть сделано с одним, чтобы я мог использовать камеру, поэтому я переключил ее на использование только одной партии, и вот как она сломалась, если это помогает? – BossLetsPlays

1

я не понял это позже, но я закомментировать много рендеринга строк, строка за строкой, чтобы увидеть, если я мог бы найти то, что было не так, то получается, что мой отладки инструмент, который я сделал (который оказывает столкновение граница с использованием ShapeRenderer) бездельничали это потому, что по-видимому, ShapeRenderer не может быть использован между batch.begin и batch.end

Я понял это с помощью this badlogicgames forum post

+0

Отличный совет. Я тоже использовал 'ShapeRenderer' для отладки и задавался вопросом, почему ни один из« спрайтов »не рисовался ... – munyul

Смежные вопросы