Я пытаюсь рисовать прямоугольники на своей Java 2D-игре, чтобы представить невидимые прямоугольники, используемые в качестве границ для моих спрайтов.Прямоугольные теги LibGDX для столкновения
Этот код находится в моем методе render()
в классе PlayState
, и по какой-то причине он удаляет все текстуры, которые я нарисовал на экране. Форма в приведенном ниже коде является объектом класса ShapeRenderer.
shape.begin(ShapeRenderer.ShapeType.Line);
shape.setColor(1, 1, 0, 1);
shape.rect(bird.getLeftBird().getPosLeftBird().x,
bird.getLeftBird().getPosLeftBird().y, 35, 40);
shape.end();
Есть ли способ использовать метод BatchSprite draw()
для рисования прямоугольников?
Я использую класс утилиты математики BadLogic
.
Вот мой метод визуализации():
@Override
public void render(SpriteBatch sb) {
sb.setProjectionMatrix(cam.combined);
sb.begin();
sb.draw(bg, cam.position.x - (cam.viewportWidth/2), cam.position.y- (cam.viewportHeight/2));
sb.draw(diamond.getTexture(), diamond.getPosition().x, diamond.getPosition().y);
for (int i = 0; i < birds.size; i++) {
Bird bird = birds.get(i);
if (bird.getId() == 0) {
// shape.begin(ShapeRenderer.ShapeType.Line);
// shape.setColor(1, 1, 0, 1);
// shape.rect(bird.getLeftBird().getPosLeftBird().x,
// bird.getLeftBird().getPosLeftBird().y, 35, 40);
// shape.end();
sb.draw(bird.getLeftBird().getLeftBird(), bird.getLeftBird().getPosLeftBird().x, bird.getLeftBird().getPosLeftBird().y);
} else {
sb.draw(bird.getRightBird().getRightBird(), bird.getRightBird().getPosRightBird().x, bird.getRightBird().getPosRightBird().y);
}
}
sb.end();
}
Показать весь метод визуализации. Что-то не так, если ваши спрайты не появляются только из-за средства визуализации фигуры. – Tenfour04
@ Tenfour04 Я добавил метод визуализации. Благодарю. –
Вы, вероятно, беспорядочно загружаетесь, пытаясь сделать рендеринг с помощью рендеринга фигур между вызовами начала и конца spriteBatch. Кроме того, перед обработкой чего-либо вы должны вызвать Gdx.gl.glClear в методе визуализации. – Tenfour04