Klassen, die Bilder darstellen, wie z. B. AtlasSprite, konnten mit Methoden zur Größenanpassung wie setScale und setSize nicht gut angepasst werden. Die Größe kann mit setScale angepasst werden, aber natürlich ändert sich auch das Bildverhältnis. Was kann ich tun, wenn ich die Größe unter Beibehaltung des Bildverhältnisses verkleinern möchte? Was ist, wenn Sie das Bild gut schneiden möchten, während Sie den Maßstab beibehalten?
Überschreiben Sie die Zeichenmethode.
Im Allgemeinen funktioniert es, wenn Sie es so machen. Es fühlt sich an, als würde man den Zeichenbereich für jeden Rahmen in der Zeichenmethode eingrenzen.
AssetManager manager = new AssetManager();
TextureAtlas atlas = manager.get("hoge",TextureAtlas.class);
TextureAtlas.AtlasSprite sprite = new TextureAtlas.AtlasSprite(atlas.findRegion("hoge")){
@Override
public void draw(Batch batch) {
batch.draw(this, this.getX(), this.getY(), this.getOriginX(), this.getOriginY(),
this.getWidth() /2f, this.getHeight()/2f, //Höhe und Breite halbieren
this.getScaleX(), this.getScaleY(), this.getRotation());
}
};
How to resize a sprite in Libgdx?
Recommended Posts