Component System Java 2D Game LibGDX

GentleXD

Aktives Mitglied
Hallo liebe Community,

ich melde mich mal wieder zurück, ich hab in den letzten Monaten an einem 2D Spiel programmiert. Nun sitzte ich mal wieder daran verschiedene Guis zu implementieren. Und mir fällt auf das sich vieles wiederholt. Als ein Beispiel ich habe Buttons die geklickt werden können und Notifications die einsliden und dann geklickt werden können. Nun das ist jetzt nicht mehr ganz so das Problem. Mein Problem ist nun ein ganz anderes. Mein Compoennt System was ich jetzt programmieren will soll nun diese Funktionen in einzelnen Components unterteilt sein. Und in einer Klasse werden dann verschiedene Gui Elemente etc. zusammen gebastelt mithilfe der Component diese sind dann Entitys diese Entitys sollen eine Liste mit Components haben und dann können sie geupdatet werden. Aber mein eigentliches Problem liegt jetzt hier: Ich habe meinen Button nun in der Klasse mit seinen Components zusammen gebastelt und habe ihm feste Werte übergeben aber wie erstelle ich jetzt einen zweiten mit unterschiedlichen Werten ohne gleich das ganze nochmal zu machen. Oder vllt. gibt es ja noch ein besseres System für die Guis.

Hier ein paar Beispiele (die sind nur aus meiner Planung) habe das System noch nicht programmiert:

Code:
Entity button = new Entity();
button.addComponent(0, new MoveComponent(100, 100)); <-- Wie erstelle ich einen zweiten Button ohne das ganze hier mit Entity button2 etc. nochmal zu machen.
button.addComponent(1, new SpriteComponent(TextureManager.instance.buttonSprite), button.getComponent(0));

Also wenn ich nun einen zweiten Button erstellen will mit anderer Position und anderer Texture ich aber nicht wieder alles neu schreiben will wie in meinem Code beispiel wie mache das am besten? Genauso wie bei Zombies wie kopiere ich die und ändere einfahc nur die Position ?

Lg GentleXD
 
Zuletzt bearbeitet:

GentleXD

Aktives Mitglied
Danke aber das löst mein Problem nicht so ganz.
Wenn ich den Button kopiere mit der clone methode, übernimmt der ja jede Komponente des bisherigen buttons aber es soll angepasst zum Beispiel immer ein anderer Text stehen. Also ich würde gerne ein Template haben einen Button denn ich zum Beispiel im Main Menu 4* kopiere aber immer den Text und die Action ändern aber das ohne das ich nochmal das Template aufschreiben muss.
 

JuKu

Top Contributor
Entweder baust du dir dafür eine Factory, oder du erstellst die Components immer wieder neu.
Mal ein Beispiel aus dem SpaceChaos Spiel.

So wird der Spieler Shuttle erstellt:
https://github.com/opensourcegamede...haos/game/entities/factory/PlayerFactory.java

Und so ein feindliches Shuttle:
https://github.com/opensourcegamede...chaos/game/entities/factory/EnemyFactory.java

Und wenn du solch ein GUI Widget erstellst, sollten diese Components eben "unter der Haube" so automatisch mit erstellt werden, dass man von außen nichts von den Components mitbekommt.
Immerhin muss der GUI Programmierer nicht unbedingt wissen, wie die GUI intern funktioniert.
 

GentleXD

Aktives Mitglied
Ich habe nochmal ne Frage zu meinem Entity Component System, (ich plane es immer noch ;D).
Mein Spieler besteht aus 6 Textures die auch immer anders verändert werden müssen (zum Beispiel ,bei Rüstungen), soll ich jetzt einfach meinem Spieler 6 mal ein Texture Component geben mit jeweils einer anderen Texture ?
 

JuKu

Top Contributor
Eig. sollte jede Component innerhalb eines Entities unique sein, allerdings kommt es drauf an, wie dein ECS Konzept aussieht.

Am einfachsten wäre es wahrscheinlich wirklich, die selbe Component mehrmals hinzuzufügen oder aber eine Component anzulegen, die alle 6 Bilder drawt.
Oder eine Component, die modularisiert ist, also 6 Sub-Components beinhaltet (gibt es sowas überhaupt?) und dann bei denen nacheinander die draw Calls ausführt.
Oder ein Entity unterstützt Child Entities, dann könnte man die als Child Entity einhängen.
Letzteres würde aber vermutlich nur mehr Overhead erzeugen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Swing Component draggen Spiele- und Multimedia-Programmierung 25
R BufferStragety Fehler: Component must have a valid peer Spiele- und Multimedia-Programmierung 5
H Item/s im Tiled-Map-System Spiele- und Multimedia-Programmierung 2
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
T Eigenes Event System Spiele- und Multimedia-Programmierung 17
radiac Java Spiel auf diversen System unspielabr Spiele- und Multimedia-Programmierung 13
S jogl ins system einbinden Spiele- und Multimedia-Programmierung 3
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Java Buch fehlermeldung Spiele- und Multimedia-Programmierung 61
yakazuqi Minecraft java.lang.Error: Watchdog Spiele- und Multimedia-Programmierung 3
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
N Minecraft Java Error Spiele- und Multimedia-Programmierung 6
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
1Spinne Minecraft Fabric Modding Java Error Spiele- und Multimedia-Programmierung 2
Joris Minecraft Minecraft Java Server Spiele- und Multimedia-Programmierung 6
Shanic Minecraft Minecraft Forge Server "Falsche Java Version" Spiele- und Multimedia-Programmierung 6
O Browser-basiertes online Pokerspiel mit Java Spiele- und Multimedia-Programmierung 1
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
D Minecraft [Minecraft] Java Start Fehler (Core-Dump) Spiele- und Multimedia-Programmierung 1
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
J Java Buttons Spiele- und Multimedia-Programmierung 6
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ 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
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
D Minecraft Java JDK installiert - Minecraft läuft nichtmehr in 64 Bit Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
D Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
Flo. android java tastatureingaben abfangen. Spiele- und Multimedia-Programmierung 1
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
P Java Grafiken mit Rechnungen verknüpfen Spiele- und Multimedia-Programmierung 4
U Minecraft Mit Java auf Minecraft Server anmelden Spiele- und Multimedia-Programmierung 11
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
C virtueller stereomix (java sound API) Spiele- und Multimedia-Programmierung 0
S Engine2D - Java 2D Engine Spiele- und Multimedia-Programmierung 20
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
U Blender in Java Spiele- und Multimedia-Programmierung 8
J Java Fussballspiel Player-KI in der Bewegungsphase Spiele- und Multimedia-Programmierung 4
K Java 15/Slide/Boss Puzzle Spiele- und Multimedia-Programmierung 2
T Java 3D - Step oder IGES Spiele- und Multimedia-Programmierung 1
H 3D Spiele mit Java - Diskussion Spiele- und Multimedia-Programmierung 35
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Bilder in Java Spiele- und Multimedia-Programmierung 7
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
N Minecraft java lernen minecraft Spiele- und Multimedia-Programmierung 20
J 2d Ansicht mit Java 3d Spiele- und Multimedia-Programmierung 13
F Abbyy finereader aus java starten, Ergebnis zurück? Spiele- und Multimedia-Programmierung 2
P Zeichenübungen mit Java Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben