# GUI in LWJGL 2 erstellen



## ViloDE_YT (14. Jul 2018)

Hallo, ich bin ein Java-Programmierer, der sich eine neue Herausforderung sucht und etwas in LWJGL 2 programmiert hat(https://innovationtechnicstudio.itch.io/world32-alpha10). Allerdings fehlt mir eine richtige GUI. Ich habe mir etwas aus GL_QUADS zusammengbastelt, da die Kamera aber schräg eingestellt ist, sieht das nicht schön aus. Ich suche also ein paar gute GUI Klassen, es würde auch reichen, wenn ich nur String auf den Bildschirm malen könnte. Ich bedanke mich schon mal im voraus


----------



## httpdigest (14. Jul 2018)

Für LWJGL 2 gibt es z.B. die Themable Widget Library.
Ich würde dir aber ganz ganz dringend LWJGL 3 empfehlen. Zum einen, weil LWJGL 2 seit über drei Jahren nicht mehr weiterentwickelt wird und zum anderen hast du hier mit Bindings für NanoVG und Nuklear gute Möglichkeiten, eigene UIs zu bauen. Es gibt auch kleine Projekte, die direkt basierend auf LWJGL3 und NanoVG GUI-Libraries bauen wollen. Ein Beispiel ist etwa LWJGUI (noch sehr neu) oder LEGUI.
Für weitere Referenzen und Diskussionen, an denen du natürlich auch eingeladen bist, teilzunehmen, siehe: https://github.com/LWJGL/lwjgl3/issues/101


----------



## ViloDE_YT (14. Jul 2018)

Ok vielen Dank 
Ich hatte halt LWGJL 2 gelernt und mein Spiel darin geschrieben, aber es war ja klar, dass ich irgendwann auf LWJGL 3 umsteigen muss. Trotzdem vielen Dank!


----------



## httpdigest (14. Jul 2018)

Naja, bei LWJGL gibt es nicht wirklich was zu "lernen". Das, was du vermutlich gelernt hast, ist die OpenGL API. LWJGL besteht ja letztlich nur aus Java Bindings für native Bibliotheken, wie eben etwa OpenGL, OpenCL, Vulkan, NanoVG, etc. etc.
Das heißt, der Umstieg auf LWJGL 3 wird mit sehr wenigen Änderungen verbunden sein.
Die größte Änderung wird lediglich der Umstieg von LWJGL2's Display/Input Klassen auf GLFW sein.


----------



## GentleXD (29. Jul 2018)

Also ich weiß zwar nicht wie Mojang es gemacht hat. Aber schau dir mal ThinMatrix an der macht bzw. momentan hat Tutorials mit LWJGL 2 gemacht. Da gibt es auch die Basics zu GUI und Font Rendering. Wenn du dann zum Beispiel Container brauchst musst du die selber programmieren zum Beispiel ein Button wäre ein Hintergrund GUI ein Text und dann ein Event was untersucht ob der Button geklickt wurde. 






 <-- hier ist direkt der Link zur Playlist


----------



## JuKu (5. Aug 2018)

Wie @httpdigest bereits sagte, solltest du dringend auf LWJGL3 umsteigen!

Desweiteren gibt es 2 Möglichkeiten für die GUI:
1. Du verwendest eine Library (z.B. LWGUI oder TWL wurden hier schon genannt - sind beide aber noch nicht wirklich ausgereift und haben ihre eigenen Probleme) oder
2. baust es dir selber.


----------



## RalleYTN (16. Aug 2018)

Ich werde dir auch empfehlen auf LWJGL3 umzusteigen. Es gibt ein paar Sachen die man einfach anders machen muss als in den Tutorials von ThinMatrix beschrieben weil manche der Methoden deprecated sind oder weil es einfach eine neue Art und Weise an das Problem ranzugehen gibt.

Das was mich eine lange Zeit abgeschreckt hat war GLFW und dessen C Dokumetation. Das war für mich ganz einfach ein Problem weil ich von den informationsreichen Dokumentationen von Java verwöhnt bin.

Solltest du Schwrierigkeiten haben dann kannst du dir diese von mir geschriebenen Klassen angucken und ein Display wie du es aus LWJGL2 kennst nachbauen: https://github.com/RalleYTN/Heroica.../ralleytn/games/heroicafabulis/engine/display

Wie man den Gameloop aufsetzt kannst du hier sehen: https://github.com/RalleYTN/Heroica...alleytn/games/heroicafabulis/engine/Game.java


----------

