Объект TextureRegion не содержит информации о том, какой размер будет при рисовании. Для этого вы можете создать свой собственный класс, который содержит данные для его рисования, такие как переменные для ширины, высоты и положения.
Или вы можете использовать встроенный класс Sprite, который уже обрабатывает множество базовых данных о местоположении и размере данных. С точки зрения дизайна, я думаю, Sprite следует избегать, потому что он простирается от TextureRegion, поэтому он объединяет активы с игровыми данными. Было бы предпочтительнее иметь класс игрового объекта. Пример:
public class GameObject {
float x, y, width, height, rotation;
TextureRegion region;
final Color color = new Color(1, 1, 1, 1);
public GameObject (TextureRegion region, float scale){
this.region = region;
width = region.getWidth() * scale;
height = region.getHeight() * scale;
}
public void setPosition (float x, float y){
this.x = x;
this.y = y;
}
public void setColor (float r, float g, float b, float a){
color.set(r, g, b, a);
}
//etc getters and setters
public void draw (SpriteBatch batch){
batch.setColor(color);
batch.draw(region, x, y, 0, 0, width, height, 1f, 1f, rotation);
}
public void update (float deltaTime) {
// for subclasses to perform behavior
}
}