From 737e4857733f93dca24d37b7d4f0d1682f294630 Mon Sep 17 00:00:00 2001 From: Joshua Date: Tue, 19 Nov 2024 17:37:16 +0100 Subject: [PATCH] Implemented coinToss(still incomplete) --- src/coinToss.java | 66 ++++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/src/coinToss.java b/src/coinToss.java index 9720a08..cf4fc0e 100644 --- a/src/coinToss.java +++ b/src/coinToss.java @@ -1,55 +1,39 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; public class coinToss extends JPanel { - // Funktionshilfen - private JLabel frameTitle = new JLabel("Zugreihenfolge", SwingConstants.CENTER); - private JLabel text = new JLabel("", SwingConstants.CENTER); // Label für die Nachricht - private int reihenfolge = 1; // Beispielhaft: 1 = Spieler 1 fängt an, 0 = Spieler 2 fängt an + private int reihenfolge = 1; // 1 = Spieler 1 fängt an, 0 = Spieler 2 fängt an private Timer timer; + private JLabel infoLabel; // Konstruktor - coinToss(MainFrame frame) { - setLayout(null); // Setze das Layout des Panels auf CardLayout + public coinToss(MainFrame frame) { + setLayout(new BorderLayout()); - // Nachricht basierend auf 'reihenfolge' einstellen - String startMessage = (reihenfolge == 1) - ? "Du fängst an, mach dich bereit..." - : "Dein Gegner fängt an, mach dich bereit..."; - text.setText(startMessage); - text.setFont(new Font("Arial", Font.BOLD, 24)); - add(text); + // Info-Label für den Anzeigetext + infoLabel = new JLabel("", SwingConstants.CENTER); + infoLabel.setFont(new Font("Arial", Font.BOLD, 24)); + add(infoLabel, BorderLayout.CENTER); - frameTitle.setFont(new Font("Arial", Font.BOLD, 32)); + // Bestimme den Anfangstext basierend auf der "reihenfolge" Variable + if (reihenfolge == 1) { + infoLabel.setText("Du fängst an, mach dich bereit..."); + } else { + infoLabel.setText("Dein Gegner fängt an, mach dich bereit..."); + } - // Beispielhaftes "Spielfeld" (nächste Szene) - JPanel gamePanel = new JPanel(); - gamePanel.setLayout(new BorderLayout()); - JLabel gameLabel = new JLabel("Das Spiel beginnt!", SwingConstants.CENTER); - gameLabel.setFont(new Font("Arial", Font.BOLD, 36)); - gamePanel.add(gameLabel, BorderLayout.CENTER); + // Erster Timer, der den Text nach 3 Sekunden auf "Es geht Los!" setzt + timer = new Timer(3000, e -> { + infoLabel.setText("Es geht Los!"); - // Füge das Spiel-Panel zu diesem Panel hinzu - add(gamePanel, "game"); - - // Timer starten - startTimer(); - } - - private void startTimer() { - // Timer, der nach 3 Sekunden zum Spiel-Panel wechselt - timer = new Timer(3000, new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - // Wechsel zum Spiel-Panel - CardLayout cardLayout = (CardLayout) getLayout(); - cardLayout.show(coinToss.this, "game"); - timer.stop(); // Timer stoppen - } + // Zweiter Timer, der nach weiteren 3 Sekunden zum Hauptmenü zurückkehrt + Timer backToMenuTimer = new Timer(3000, ev -> { + frame.showPanel("MainMenu"); + }); + //backToMenuTimer.setRepeats(false); // Timer nur einmal ausführen + backToMenuTimer.start(); }); - timer.setRepeats(false); // Timer soll nur einmal ablaufen - timer.start(); // Timer starten + //timer.setRepeats(false); // Erster Timer soll nur einmal ausgeführt werden + timer.start(); } }