2013-04-04 33 views
7

Đây là tôi thiết lập:LibGDX - Làm thế nào để làm mịn diễn viên có thể vẽ được khi mở rộng giai đoạn Scene2d?

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

này được kết xuất như sau:

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

Vấn đề là khi sân khấu được hiển thị trên 1280x800 nút trông giống như rằng:

unscaled image

Nếu giai đoạn được thay đổi kích thước thành ví dụ 1280x736, nút có thể kéo được chia tỷ lệ theo cách sau: scaled image

Có cách nào để làm mịn các cạnh bằng cách nào đó không? Bởi vì ngay bây giờ nó trông với tôi rằng việc chia tỷ lệ chỉ đơn giản là được thực hiện bằng cách loại bỏ một dòng pixel trong nửa trên và một ở nửa dưới của hình ảnh.

Trả lời

13

Bạn đang sử dụng bộ lọc ở bất kỳ nơi nào trong mã của mình? Nếu không, hãy thử điều này:

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

Trường hợp đối tượng kết cấu bạn đang sử dụng.

+1

Cảm ơn. Bạn đã chỉ cho tôi đi đúng hướng. Tôi đã sử dụng: tex = new Texture(); tex.setFilter (TextureFilter.MipMapLinearLinear, TextureFilter.Linear); – schafant