Tipps Zur Umsetzung einer GUI für ein Trading Card Game

mybreak

Mitglied
Guten Abend!

Bin neu hier, daher weiss ich nicht genau ob es die richtige Topic ist, deshalb bitte ich dies zu entschuldigen sollte es nicht die richtige sein! :D

Zu meiner Frage: Irgendwie habe ich ein Brett vorm Kopf. Java Grundlagen besitze ich, auch was GUIs angeht. Soviel vorab.

Ich habe vor, ein selbst ausgedachtes Trading Card Game (Kartenspiel -> ähnlich wie Magic/YuGiOh und co.) in Java umzusetzen. Jedoch fällt es mir schwer, das Grundgerüst der GUI zu bauen. Zunächst der Aufbau des zu sehenden Spiels.

In der Mitte (CENTER) soll ein zunächst leeres Spielfeld von 16 Feldern wo man Karten legen kann (4x4) sichtbar sein.
Oben (NORTH) sollen 5 Karten (des Gegners) verdeckt sichtbar sein.
Unten (SOUTH) ebenfalls 5 Karten (Die eigene Hand (nicht verdeckt)).
Rechts sollen zwei "Nachzieh"-Stapel verdeckt sein.

Vorstellung meinerseits: Die Karten (Eigene Klasse) werden als Deck (30 Stück), welche zunächst auf dem Nachziehstapel liegen, erzeugt. Der Spieler bekommt nun 5 Karten zugeteilt (Reihenfolge ist unwichtig) auf die Hand, welche man logischer weise sieht (Hier Imageeinbindung, vorher jedem einzelenen Kartenobjekt zugeteilt).

Nun soll es vorerst möglich sein, ein KartenObjekt aus der eigenen Hand zu picken (per Mausklick) und dies einem freien Feld in der Mitte zuzuteilen. Die Karte soll aus der Hand verschwinden und eben auf das gewählte Feld "verschoben" werden (Animation spielt vorerst keine Rolle). Danach soll nachgezogen werden. (Ich hoffe es war soweit nachvollziehbar, falls nein werde ich eine Skizze hochladen)

Nun meine Frage, womit wäre es am besten dieses vorhaben umzusetzen? (Es muss immer möglich sein, genau zu identifizieren (per Mausklick) welches Feld und welches KartenObjekt "gepickt" wurde und wo es hingelegt wurde).

Ich habe mehrere Wege die ich mir überlegt hatte. Zuerst alles per Buttons zu machen, Sprich einzelne Felder, die Hand, den Kartenstapel. Diese Buttons mit Images zu versehen und denen KartenObjekte zuzuweisen (Möglich?!).
Anderer Ansatz wäre es das ganze als Zweidimensionales Array aufzuziehen, sprich Raster. Dann per MouseOver/MouseClick Event auszulesen wo die Maus sich befindet und somit die Koordinaten im Array herauszufinden.
Weiterhin bin ich grade auf JavaFX und OpenGL gestoßen. -> Meinungen?

Ich hoffe es ist Ansatzweise verständlich und der ein oder andere hat einen möglichen Ansatz für mich, denn irgendwie bin ich mir nicht sicher, da im nachhinein eine komplexe logik dahinter stecken soll und ich nicht zurückgeworfen werden möchte wegen der GUI. Oder Sollte ich gaaaanz woanders ansetzen????:L

Vielen Dank schonmal für eure Anregungen! Bin sehr gespannt!

lg
 

strußi

Top Contributor
du könntest das ganze in ein großes gridBagLayout packen

zeile 1: 5 felder für die Karten
zeile 2: 1 feld für den kartenstapel und einen für die ablage und 4 felder zum legen
zeile 3 -8: 4 felder
zeile 9: 1 feld für den kartenstapel und einen für die ablage und 4 felder zum legen
zeile 10: 5 felder für die Karten

oder du machst die ein borderlayout in dem du dann das gridbaglayout implementierts

north = gbc mit 5 felder
left =gbc mit 1 feld
center =4 x4 felder
right = gbc mit 1 feld
south =gbc mit 5 felder

[EDIT]
aber ich würde mir über die oberfläche erst später gedanken machen, und erst die spiellogik hinterlegen
[/EDIT]
 
Zuletzt bearbeitet:

mybreak

Mitglied
Vielen Dank schonmal für deine Antwort!

Über das Layout mach ich mir momentan eher weniger Gedanken, das habe ich soweit schon mit Buttons "gebaut". Meine Frage bezieht sich eher darauf: Welche Art von Datentyp sollte ich nutzen? Wirklich "unsichtbare" Buttons? Array's ? Labels? Was ganz anderes?


lg!
 

strußi

Top Contributor
Das ist dir überlassen,
du musst überlegen wie du das im spiel umsetzen willst
Es gibt zum Beispiel auch JToggleButton für den verteidigungsmodus, oder du mischt die labels für die "statischen" felder (handkarten und kartenstapel) und buttons für die spielfelder, oder nur labels

für das spielfeld würde ich wahrscheinlich ein JIrgendwas[][] spielfeld nehmen
am besten du malst erst mal ein wenig auf ein stück papier wie du dir das vorstellst und probierst es dann so umzusetzen, wie es dir am besten gefällt
 

mybreak

Mitglied
Den Aufbau habe ich soweit, dürfte auch soweit passen.

Ich habe jetzt alles vorerst mit Buttons gemacht. Frage stellt sich jetzt: Ich habe eine Klasse "Card" und eine Klasse Stapel. Stapel soll 30 Card-Objekte erstellen (mit einzelnen Parametern UND einem Image). Wiederum die "Main" Klasse soll 2 Stapel-Objekte mit jeweiles 30 Karten erzeugen. Welche dann eben an der rechten Seite sind. Mit welchen Mitteln ist es möglich dieses vorhaben zu realisieren? Unter anderem auch das durch einen Mouselistener bzw. Action listener die Methode "ziehen();" aufgerufen wird und 5 Card-Objekte aus dem Stapel in die andere Klasse "Hand" (wovon der MainFrame ein Objekt erstellt hat, mit 5 Buttons) "verschiebt" werden sozusagen. Überlegung wäre das card1 Objekt via button.add(card1); zu übergeben (salop beschrieben, nicht möglich da kein Component). Ideen dazu? :bahnhof:
 
Zuletzt bearbeitet:

strußi

Top Contributor
um den Kartenstapel bzw. die Handkarten zu halten kannst du eine List<Karte> bzw. ArrayList<Karte> mit Kartenobjecten nutzen und das kartenobject hält die Parameter und die Referenz auf das jeweilige img
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
R LayoutManager GroupLayout - Tipps? AWT, Swing, JavaFX & SWT 2
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Tipps für Gui-Programmierung? AWT, Swing, JavaFX & SWT 9
K 2048 Umsetzung mit Gridpane / Stackpane und / Rectangle AWT, Swing, JavaFX & SWT 0
temi JavaFX Lösungsansatz für Umsetzung gesucht AWT, Swing, JavaFX & SWT 4
B Design Umsetzung AWT, Swing, JavaFX & SWT 1
B Swing MVC Architektur Umsetzung AWT, Swing, JavaFX & SWT 9
T Touch GUI umsetzung AWT, Swing, JavaFX & SWT 6
S Umsetzung Stammbaumes AWT, Swing, JavaFX & SWT 10
M Swing MVC Pattern verstanden, aber Probleme bei der Umsetzung AWT, Swing, JavaFX & SWT 5
C Swing Hilfe bei umsetzung eines Stundenplans. AWT, Swing, JavaFX & SWT 7
U Hilfestellung zu MVC-Umsetzung bzgl JTrees AWT, Swing, JavaFX & SWT 9
R Frage nach der Umsetzung? AWT, Swing, JavaFX & SWT 8
E Swing Allgemeine Frage zur Struktierung und Umsetzung AWT, Swing, JavaFX & SWT 2
O Layout-Umsetzung AWT, Swing, JavaFX & SWT 11
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
A Prüfung einer Eingabe auf Gleitkommazahl AWT, Swing, JavaFX & SWT 5
J Suchmaschine einer Datenbank AWT, Swing, JavaFX & SWT 5
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
J JavaFX - Felder (Label) in einer ForSchleife bearbeiten AWT, Swing, JavaFX & SWT 4
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben