Tôi đang sử dụng scene2d. Đây là mã của tôi:Libgdx - Làm thế nào để vẽ hình chữ nhật đầy ở đúng nơi trong scene2d?
group.addActor(new Actor() {
@Override
public Actor hit(float arg0, float arg1) {return null;}
@Override
public void draw(SpriteBatch batch, float arg1) {
batch.end();
shapeRenderer.begin(ShapeType.FilledRectangle);
shapeRenderer.setColor(Color.RED);
shapeRenderer.filledRect(0, 0, 300, 20);
shapeRenderer.end();
batch.begin();
}
});
Vấn đề là nó thu hút tương đối hình chữ nhật này để màn hình (x = 0, y = 0), nhưng tôi cần nó được rút ra so với nhóm tôi. Nhưng nếu tôi vẽ các thực thể khác với:
batch.draw(texture, 0, 0, width, height);
nó vẽ chính xác tại (x = 0, y = 0) tương đối nhóm của tôi (0,0 pixel từ góc dưới cùng bên trái của nhóm).
Bất kỳ đề xuất nào tôi có thể triển khai vẽ hình dạng trong scene2d? Và ai đó có thể giải thích tại sao hai cuộc gọi này hoạt động khác nhau?
Tôi đã tự làm điều này gần đây - tôi đặt biến đổi và ma trận chiếu của ShapeRenderer từ SpriteBatch được chuyển vào phương thức draw(). Nó không có vẻ rất hiệu quả nhưng nó hoạt động. – locka