Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.05.2015, 19:15

[LibGDX] Runde Verlaufsleiste

Wie kann ich in LibGDX eine runde Verlaufsleiste erstellen? Ich habe eine Textur gegeben und möchte sie nun nur in einem bestimmten Bereich rendern lassen? (zB. zwischen 30° und 170°)

Ich hab zwar schon gegoogelt aber habe nicht ganz verstanden wie ich das umsetzen kann!

LG Adron

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

29.05.2015, 12:44

Was ist eine runde Verlaufsleiste? Meinst du so einen Kreis/Kringel als Ladebalken?
Du kannst für verschiedene Ladestände verschiedene Texturen nehmen.
Du kannst eine Textur nehmen und verschiedene Polygone nehmen auf welche du die Textur renderst. Die Polygone entsprechen dabei dann der Fläche die Gefüllt sein soll.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

29.05.2015, 13:33

ich möchte gerne dass die Textur an den bestimmten Winkeln abgschnitten wird und dann nur der definierte Bereich gerendert wird.

Lg Adron

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »AdronTech« (29.05.2015, 16:51)


4

29.05.2015, 13:35

Ich würde dir raten einen Shader dafür zu machen.

Ansonsten gibt es den "nicht sehr performanten" ShapeRenderer in Libgdx. Da kannst du shapeRenderer.arc(...) Kreise/Halbkreise/Virtelkreise/etc mit zeichnen.
Die kannst du als Line oder Filled machen. Die Line kannst du mit Gdx.gl20.lineWidth(...) glaube ich dicker machen. Müsstest dann den Kreis als Line rendern und eine geeignete LineWidth einstellen.

Mit Masking kannst du sicherlich auch sowas erreichen. Aber ich glaube das funktioniert über Libgdx nur mit Rectangles.

Aber ich rate dir eher zu einem Shader.

Hier ist ein Link, falls du genaueres wissen willst:
https://github.com/mattdesl/lwjgl-basics/wiki/LibGDX-Masking

5

29.05.2015, 15:04

Im Anhang befindet sich ein Bild, wie es ungefähr ausschauen sollte jedoch möchte ich nicht die % angeben sondern die Winkel und die Textur sollte nicht zwingend rund sein.

Lg Adron
»AdronTech« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »AdronTech« (29.05.2015, 16:51)


TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

6

29.05.2015, 15:15

Ich weiß, was ermeint. So etwas wie einen Ring, der sich radial mit einer Farbe füllt. Wie wenn man halt einen Lebensbalken nicht als Linie macht, sondern zu einem Kreis geformt. Eine schöne Lösung, die Stufenlos und und nicht "maßlos überteuert" ist fällt mir halt ebend auch nicht ein. Wer hat denn sowas schonmal gebaut? Die Lösungen bei Github sind ja nunmal auch etwas dürftig.

7

29.05.2015, 16:50

Es sollte eben nicht nur ein Ring sein sondern die Textur sollte so abgeschnitten werden wie ich es in meiner vorherigen Antwort beschrieben habe.

Lg Adron

8

29.05.2015, 17:10

Man könnte eine vollständige kreistextur verwenden. Zuerst zeichnest du ein 'Kuchen' (bzw irgendwas anderes) über den teil, der sichtbar sein soll, in einen Framebuffer und zeichnest dann die kreistextur drüber, wobei du mit einer bestimmten blendingfunktion nur den teil zeichnen lässt, wo auch der Kuchen gezeichnet wurde.

Dreat

Frischling

Beiträge: 86

Wohnort: Heilbronn

  • Private Nachricht senden

9

29.05.2015, 17:24

Ich kann dein Bild irgendwie nicht öffnen aber meinst du vielleicht sowas?
Unten rechts die Healthanzeige?


(Link)

10

31.05.2015, 20:45

Ja so in der Art, jedoch sollten auch quadratische Texturen dargestellt werden.

LG Adron

Werbeanzeige