2013-04-04 12 views
7

To jest moja konfiguracja:LibGDX - Jak wygładzić aktora do rysowania podczas skalowania sceny Scene2d?

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

ten zostanie wygenerowana w następujący sposób:

@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(); 
} 

Problem jest, że gdy etap pokazany jest na 1280x800 przycisk wygląda tak:

unscaled image

Jeśli etap zostanie przeskalowany do np. 1280x736, losowanie przycisku jest skalowane w następujący sposób: scaled image

Czy istnieje sposób na wygładzenie krawędzi w jakiś sposób? Ponieważ teraz wydaje mi się, że skalowanie odbywa się po prostu przez usunięcie jednej linii pikseli w górnej połowie i jednej w dolnej połowie obrazu.

Odpowiedz

13

Czy używasz filtrów w dowolnym miejscu kodu? Jeśli nie, to spróbuj tego:

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

Gdzie texture jest obiekt tekstury, które używasz.

+1

Dzięki. Wskazałeś mi właściwy kierunek. Użyłem: tex = new Texture(); tex.setFilter (TextureFilter.MipMapLinearLinear, TextureFilter.Linear); – schafant

Powiązane problemy