2013-04-04 6 views
7

Das ist mein Set-up:LibGDX - Wie kann man beim Skalieren einer Scene2d-Bühne den Zeichner glätten?

stage = new Stage(1280, 800, false); 
button = new Button(drawableUp, drawableDown); 
stage.add(button); 

dies wie folgt wiedergegeben wird:

@Override 
public void render(float delta) { 

    Gdx.gl.glClearColor(RED,GREEN,BLUE,ALPHA); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    stage.act(delta); 

    stage.draw(); 
} 

Das Problem ist, dass, wenn die Bühne auf 1280x800 gezeigt wird die Schaltfläche so aussieht:

unscaled image

Wenn die Stufe neu skaliert wird, z 1280x736, die Schaltfläche ist folgendermaßen skalierbar: scaled image

Gibt es eine Möglichkeit, die Kanten irgendwie zu glätten? Denn im Moment sieht es so aus, als ob die Skalierung einfach durch Entfernen einer Pixelzeile in der oberen Hälfte und einer in der unteren Hälfte des Bildes erfolgt.

Antwort

13

Verwenden Sie Filter irgendwo in Ihrem Code? Wenn nicht, dann versuchen Sie dies:

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 

Wo texture ist die Textur-Objekt, das Sie verwenden.

+1

Danke. Sie haben mich in die richtige Richtung gezeigt. Ich habe verwendet: tex = new Texture(); tex.setFilter (TextureFilter.MipMapLinearLinear, TextureFilter.Linear); – schafant

Verwandte Themen