Game GUI Programmieren

NeoBlyzX

Mitglied
Heyho liebe Community!

Ich bin gerade dabei ein kleines Spiel zu proggen, stoße jedoch auf einige Probleme mit der GUI...

Ich habe absolut KEINE Ahnung, wie man eine GUI programiert...
Ich will aber auch keine bereit gestellten GUI Libraries benutzen (Nifty-GUI, TWL, etc.)
Ich will, dass man mehrere Panels über Tasten öffnen kann und dann mit gewissen Punkten interagieren kann. Grundlegend soll das Menü und die 'HUD' aussehen wie bei Torchlight (und 2).

P.s: Ich benutze LWJGL und das Spiel ist ein 2D-Top-Down-Pixel-Mob-Slasher :D

So ein wenig Mischung aus Torchlight und League of Legends nur im Pixel-Style...

Danke im Voraus!
 

Gucky

Top Contributor
Willst du eine GUI komplett selbst programmieren? Also das ist nahezu unmöglich.
Welche IDE benutzt du denn? Mit eclipse kann man die GUI "malen" also man nimmt sich Elemente aus einem Feld und zieht diese in sein Frame.
 

Ruzmanz

Top Contributor
Ich würde von den genannten Libraries darauf schließen, dass er LWJGL nutzt und somit seine GUI nicht zusammenklicken kann. Ein simples Menü ist auch nicht so komplex, um es nicht selbst programmieren zu können ...

Eine GUI wird genau so programmiert wie das Spiel. Ganz grob:

Java:
public void update() {
  if(input == KEY_ESC_PRESSED) {
    isMenuVisible= !isMenuVisible;
  }
}

public void draw() {
  drawGround();
  drawObjects();
  drawHUD();
  if(isMenuVisible) drawMenu();
}

Du zeichnest Ebenen-weise die benötigten Elemente. Auf den unteresten Ebenen befindet sich das "Spiel". Über dem Spiel kommt das HUD. Wenn das Menü geöffnet wird, wird es als letztes gezeichnet, d.h. es befindet sich ganz oben auf dem Stapel.

Die einzelnen GUI-Elemente werden genau so programmiert, wie die SpielObjekt-Elemente. Zum Beispiel klickst du auf einen Charakter und es werden Informationen angezeigt. Das ist im Prinzip nichts anderes als ein Button.

Ein simpler Button hat die Attribute xPos, yPos, height, width, color. Es ist ein Rechteck, das irgendwo auf dem Bildschirm platziert ist. Deine GameLoop läuft ununterbrochen. Wenn ein Mausklick wahrgenommen wird, dann musst du schauen, ob sich die MausPosition in diesem Rechteck befindet. Ist das der Fall, wir eine spezielle Methode ausgeführt. (Nur wenn das Menü aktiviert ist). Fürs GameMenü gibt es genügend Tutorials. Das kann beliebig optimiert werden. Wenn sich die Maus in einem Rechteck befindet, ändert sich die Farbe und das ist ein "Hover-Effekt".
 

NeoBlyzX

Mitglied
Ok danke, jedoch habe ich noch Probleme mit dem Skalieren von Bildern bzw dem teilweisen 'ausmalen' von Bildern... Dh. Ich würde gerne einen Lebensbalken haben und der soll sich prozentual mit dem Leben in Rot färben (Also Leben = 100% -> Balken = komplett Rot(heller), Leben unter 50% Linke seite des Balkens (Restleben) Rot (dunkler) und der Rest dunkelgrau...
wie genau mach ich das?

Ich benutze btw Netbeans und LWJGL 2.9 (Version bin ich unsicher, ist aber die aktuellste)
 

NeoBlyzX

Mitglied
Wie hast du es denn verstanden?
Würde mich interessieren, da ich noch GAAANZ neu bei der grafischen Java Programmierung bin und ich gerne so viel wie möglich lernen würde!

Wie macht man zB verschiedene Menüs? (So mit "Ordnerstruktur")? So dass man von einem Menü ins nächste kommt und dann das Spiel erst richtig los geht?
 

BuddaKaeks

Bekanntes Mitglied
[OT]LWJGL 2.9 ist definitiv nicht die neuste Version, da sind wir inzwischen bei LWJGL 4.3 (4.3 ist allerdings nur so ein nightlyBuild, wie ich das verstanden habe)[/OT]
 

Gucky

Top Contributor
Ich hab es so verstanden, dass du eine ganz normale GUI haben willst. Zwar eine, mit der du das Spiel bedienen kannst aber keine "ingame GUI".

Also. Es gibt zwei Arten von Spiele GUIs.
1. Die normal GUI, wie sie auch in Dienstprogrammen verwendet wird nur halt mit spieltechnischen Aufgeben betraut.
2. Eine selbstgemachte GUI, wie sie in z.B. Egoshootern zu finden ist. Da sieht ja nichts so aus, wie Windows es bereitstellen würde. Mit Buttons, die sich an den Blickwinkel des Spielers anpassen.


Die erste GUI ist einfach. Dazu musst einfach in deiner IDE in den visuellen Editor gehen und die GUI zusammenklicken.
Die zweite ist schon schwerer, da du erstens alles verändern musst (im Großen und Ganzen sind das trotzdem Buttons, Labels usw. aber für alles eine andere Textur und ein anderes Aussehen).


Jetzt noch mal eine grundlegende Frage: Willst du eine statische GUI, die einmal da ist und die sich nicht bewegt oder eine GUI a la Heads up Display und professionelles Spiel?
 

NeoBlyzX

Mitglied
Ich würde eine GUI der zweiten Variante von dir haben wollen, dh mit eigenen Buttons etc für ein professionelleres Spiel (wills ja auch nicht verkaufen oder so)... Zudem sollte ein Heads-Up-Display auch noch dabei sein, da ich ja Leben, Mana, etc visuell sichtbar machen will (keine 10.000.000.000 Zahlen :D)

Also: Eigenes Menü (kein Windows-Style, würde ich auch alles selber 'malen') und ein Heads-Up-Display (würde ich auch alles selber malen)

P.S.: War mir mit Heads-Up-Display nicht so sicher, da ich ja ein Top-Down Spiel programmieren will und nicht aus Ego-Perspektive... Sorry für die Umständlichkeiten :D

P.P.S.: Ok, als ich LWJGL runtergeladen habe war es noch das aktuellste... Zieh mir doch direkt mal die neuste Version :D
 

Gucky

Top Contributor
Ich schwöre ja noch auf Swing (aus dem Grund, dass ich zu faul bin mir JavaFX runterzuladen :D ). Da kannst du relativ leicht die Dinge verändern. Für die Mana und Gesundheitsanzeige nimmst du einen Ladestandsbalken, für die Zahlen Labels, für die Dinge, wo man draufklicken kann eben Buttons.

Aber ich denke in anderen Frameworks ist das nicht anders.

Für das Verändern selbst müsstest du Google zu Rate ziehen. Das hab ich nur ein mal gemacht und das Projekt eingestampft. Aber ich kann dir Ideen zu Aussehen und Anordnung liefern.
 

BuddaKaeks

Bekanntes Mitglied
Swing ist aber im gegensatz zu OpenGl sehr Langsam:

Grund: Swing ist softwaregerendert und Opengl/Lwjgl nutzt einen Hardwaregrafikbeschleuniger, sprich die GPU
 

Ruzmanz

Top Contributor
Warum willst du das selbst machen, wenn du keinen Plan hast, wie das geht? Niemand hat Lust dir etwas zu erklären, wozu es 100 Tutorials und eine ziemlich gute Library gibt. Du willst etwas selbst machen oder lernen? Kein Problem, dann fange mal mit der Selbstbeteiligung an.
 

NeoBlyzX

Mitglied
keinen Plan stimmt auch nicht, ich bin lediglich neu in der grafischen Programmierung...
Ich möchte nur wissen, wie man ein Bild durch ein Zahlenverhältnis (Aktuelles Leben/Maximalen Leben = Volles Bild/X-tel Bild) verändert (so dass die aktuellen HP den Lebensbalken ausfüllen) und wie man Strings an bestimmten Stellen des Bildschirms anzeigt und man Schieberegler etc macht...

dürfte ja nicht so schwer sein, mal einen Link zu einem Tutorial zu posten oder mal Scriptstücke von seinen eigenen Kreationen freizugeben - denn ich habe schon mehrere Stunden vergeblich damit verbracht, ein Tutorial zu finden, geschweige denn eines, dass meinen Ansprüchen gerecht wird und für LWJGL zutreffend ist. (Was für'n Satz...)

Danke
 

Ruzmanz

Top Contributor
Ich möchte nur wissen, wie man ein Bild durch ein Zahlenverhältnis (Aktuelles Leben/Maximalen Leben = Volles Bild/X-tel Bild) verändert (so dass die aktuellen HP den Lebensbalken ausfüllen)

Kommt auf das Bild an. Nehmen wir an es ist nur ein "Rechteck". Dann zeichnest du deinen "leer"-Balken (grau) auf deinen Bildschirm (Position 0/0, Größe: 250/10, Farbe: Grau). Über deinen "leer"-Balken zeichnest du dein Mana-Balken (Position 0/0, Größe: var1/10, Farbe: Blau). Mit einem simplen Dreisatz kannst du den prozentualen Wert deiner Manaanzeige bestimmen ...

Strings an bestimmten Stellen des Bildschirms anzeigt

Google: "JLWGL Draw String" -> Drittes Ergenis ein Video-Tutorial: Java LWJGL :: Drawing Text without Slick! - YouTube

Schieberegler etc macht

Ist ein Balken. Wenn in diesen Balken geklickt wird, muss der "Schieberegler" (vertikales Rechteck) einfach auf die Mausposition gezeichnet werden. Zusätzlich wird der Wert des Schiebereglers anhand der Mausposition neu berechnet.

dürfte ja nicht so schwer sein, mal einen Link zu einem Tutorial zu posten oder mal Scriptstücke von seinen eigenen Kreationen freizugeben - denn ich habe schon mehrere Stunden vergeblich damit verbracht, ein Tutorial zu finden, geschweige denn eines, dass meinen Ansprüchen gerecht wird und für LWJGL zutreffend ist. (Was für'n Satz...)

Nicht böse gemeint, aber welche Erwartungen hast du? Deine stundenlange Recherche muss sehr mühsam gewesen sein -> LWJGL Tutorial - YouTube ... gibt da alles von Menu bis HUD.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
wolfgang63 Mit JavaFX einfaches Game programmieren Spiele- und Multimedia-Programmierung 5
L Spider game, Ist es verloren? Spiele- und Multimedia-Programmierung 4
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
P Snake Game Verbessern Spiele- und Multimedia-Programmierung 15
E Organisation für Game Spiele- und Multimedia-Programmierung 1
G [Game-Multiplayer] Welt vom Server zum Client senden. Spiele- und Multimedia-Programmierung 0
C 3d Game Engine : PERFORMANTE Räumliche Verdeckung Spiele- und Multimedia-Programmierung 5
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
B "Snake"-Game Logikfehler Spiele- und Multimedia-Programmierung 1
R Game Loop verhält sich eigenartig Spiele- und Multimedia-Programmierung 1
H Game Crash Spiele- und Multimedia-Programmierung 7
B Game of Life: Was mache ich falsch? Spiele- und Multimedia-Programmierung 3
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
T Moddable Game Spiele- und Multimedia-Programmierung 6
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T Game-Rendering Spiele- und Multimedia-Programmierung 5
I 2D-Side-Scrolling-Game in Chunks splitten Spiele- und Multimedia-Programmierung 9
Z 2D Pixer art RPG Game - Alpha auf Indie DB spielbar Spiele- und Multimedia-Programmierung 0
F Game of Life Spiele- und Multimedia-Programmierung 1
S Game/Cheat Spiele- und Multimedia-Programmierung 20
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
K Online Game? Spiele- und Multimedia-Programmierung 1
R Game Loop scheitert.. Spiele- und Multimedia-Programmierung 2
Androbin Verschwindender Spieler in 2D-Game Spiele- und Multimedia-Programmierung 7
Sogomn Game Loop Spiele- und Multimedia-Programmierung 2
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
J Verständnissfragen zur Game-Loop Spiele- und Multimedia-Programmierung 2
Black_ixx ManaWar Action Game Spiele- und Multimedia-Programmierung 5
M Multiplayer-Game auf Website Spiele- und Multimedia-Programmierung 2
M Multiplayer Game mit Frontend auf HTML5 - ohne ständigen Client Request - Möglich?! Spiele- und Multimedia-Programmierung 12
P Mein Android Game Spiele- und Multimedia-Programmierung 3
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Kenan89 Kleines Game Spiele- und Multimedia-Programmierung 26
M Vektor Game Spiele- und Multimedia-Programmierung 13
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
K 3D Game wie Minecraft Spiele- und Multimedia-Programmierung 3
T Torquemada´s erstes Game (Pong) Spiele- und Multimedia-Programmierung 5
X Möglichst komplette 2D Game Engine? Spiele- und Multimedia-Programmierung 12
Kr0e Red Dwarf Game Server Spiele- und Multimedia-Programmierung 5
M Euer erstes Game Spiele- und Multimedia-Programmierung 16
M Netzwerk-Game mit UDP Spiele- und Multimedia-Programmierung 8
ruerob Eure Meinung über Applet-game Spiele- und Multimedia-Programmierung 12
J das erste Game Spiele- und Multimedia-Programmierung 2
M Einen Hobby Game - / Grafik Designer zu finden (Screenshot vom Spiel) Spiele- und Multimedia-Programmierung 7
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
J 2D-Game-Engine? Spiele- und Multimedia-Programmierung 2
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
P 2D Game - Alternative zur TileMap? Spiele- und Multimedia-Programmierung 2
W Memory Game Spiele- und Multimedia-Programmierung 4
Steev EGE - Easy Game Engine Spiele- und Multimedia-Programmierung 2
Developer_X X-Shooter Game Spiele- und Multimedia-Programmierung 21
C 2D Multiplayer Game Spiele- und Multimedia-Programmierung 5
O Mein erstes Game Spiele- und Multimedia-Programmierung 10
Developer_X PingPong-the Game by Developer-X Spiele- und Multimedia-Programmierung 170
K My First Game "ORB" vielen Dank Quaxli Spiele- und Multimedia-Programmierung 23
hdi Das java-forum.org 2D-Game Projekt/Tutorial Spiele- und Multimedia-Programmierung 6
hdi Quiclix : Game download Spiele- und Multimedia-Programmierung 5
A Java 2D Game Spiele- und Multimedia-Programmierung 4
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
G Suche passende Game api Spiele- und Multimedia-Programmierung 9
K Java Game Programming Buch Spiele- und Multimedia-Programmierung 3
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
L Kleines RTS Game -> Netzwerkproblem Spiele- und Multimedia-Programmierung 5
P Suche Leute für ein Hobby-Projekt (Browser Game) Spiele- und Multimedia-Programmierung 4
Q online game programieren Spiele- und Multimedia-Programmierung 8
G Welche Game Api Spiele- und Multimedia-Programmierung 9
S 3d applet - online game Spiele- und Multimedia-Programmierung 4
C Open-Source Game Spiele- und Multimedia-Programmierung 2
sparrow 3D-Game-Engine Spiele- und Multimedia-Programmierung 20
J Isometric Tile Game (x,y) inklusive Z cordinaten? Spiele- und Multimedia-Programmierung 2
M Java online multiplayer game Spiele- und Multimedia-Programmierung 2
J java netzwerk strategie game programmiert Spiele- und Multimedia-Programmierung 4
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
B Snake-Game fürs Handy Spiele- und Multimedia-Programmierung 3
F Online Game mit Java? Spiele- und Multimedia-Programmierung 11
M Space PingPong Game --> Performance ok? Spiele- und Multimedia-Programmierung 44
R 2D Game Oberfläche. Wie am besten? Spiele- und Multimedia-Programmierung 2
H LWJGL - Lightweight Java Game Library! Ist Java3D jetzt out? Spiele- und Multimedia-Programmierung 4
M BlueJ Schach Steuerung programmieren Spiele- und Multimedia-Programmierung 28
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
N Escape the Room - Spiele Apps programmieren Spiele- und Multimedia-Programmierung 14
Laaalo Tic tac toe programmieren Spiele- und Multimedia-Programmierung 4
mihe7 Wie man einfache Spiele programmieren kann Spiele- und Multimedia-Programmierung 23
M Brauche Hilfe was zu Programmieren Spiele- und Multimedia-Programmierung 4
N Minecraft Spigot-Plugin | Schusswaffe programmieren Spiele- und Multimedia-Programmierung 3
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
A DoodleJump programmieren: Kollisionsabfrage Spiele- und Multimedia-Programmierung 6

Ähnliche Java Themen

Neue Themen


Oben