2014-08-28 14 views
5

Zacząłem używać libgdx i próbuję po prostu zrobić kółko z dość grubym obrysem. Na razie nie znalazłem ani śladu udaru. pixmap.setStrokeWidth() jest nawet w interfejsie API, ale wydaje się, że został usunięty (?), A Gdx.gl10.glLineWidth(width); nie ma żadnego efektu. Jak mogę zmienić skok linii? Oto fragment mojego obecnego kodu:Koło Libgdx z linewidth

@Override 
public void create() { 
    w = Gdx.graphics.getWidth(); 
    batch = new SpriteBatch(); 
    pixmap = new Pixmap(2 * w, 2 * w, Pixmap.Format.RGBA8888); 
    pixmap.setColor(Color.BLACK); 

    pixmap.drawCircle(w, w, w); 
    texture = new Texture(pixmap); 
    pixmap.dispose(); 

    sprite = new Sprite(texture); 
} 

@Override 
public void render() { 
    Gdx.gl.glClearColor(1, 1, 1, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    batch.begin(); 
    sprite.setPosition(-w/2, -w); 
    sprite.draw(batch); 
    batch.end(); 
} 
+0

Losowe ujęcie: Jaki jest domyślny kolor mapy Pixmap? Czy to możliwe, że kod czernie czarny na Pixmap? –

Odpowiedz

6

OpenGL „Grubość linii” API jest kulawy. Standard wymaga tylko, aby szerokość 1.0 była obsługiwana, więc wiele implementacji (szczególnie w urządzeniach mobilnych) nie obsługuje więcej. Zobacz Libgdx gl10.glLineWidth().

Możesz spróbować narysować dwie wypełnione płyty, obie z tym samym środkiem. Drugi powinien mieć mniejszy promień i powinien być narysowany do Pixmapy w taki sposób, aby ustawić alfa na 0, gdzie jest narysowany. To powinno zostawić "gruby" okrąg.