diff --git a/Sound/loosescreenWAH.mp3 b/Sound/loosescreenWAH.mp3 deleted file mode 100644 index 25c2f25..0000000 Binary files a/Sound/loosescreenWAH.mp3 and /dev/null differ diff --git a/Sound/loosescreenlaugh.mp3 b/Sound/loosescreenlaugh.mp3 new file mode 100644 index 0000000..213a6c0 Binary files /dev/null and b/Sound/loosescreenlaugh.mp3 differ diff --git a/Sound/win.mp3 b/Sound/win.mp3 new file mode 100644 index 0000000..84e80db Binary files /dev/null and b/Sound/win.mp3 differ diff --git a/Sound/yourturn.mp3 b/Sound/yourturn.mp3 new file mode 100644 index 0000000..728bbda Binary files /dev/null and b/Sound/yourturn.mp3 differ diff --git a/graphics/backButton.png b/graphics/backButton.png index 92c9647..2b1a5e9 100644 Binary files a/graphics/backButton.png and b/graphics/backButton.png differ diff --git a/src/AsyncSocket.java b/src/AsyncSocket.java index 506309f..1937afb 100644 --- a/src/AsyncSocket.java +++ b/src/AsyncSocket.java @@ -225,7 +225,10 @@ public class AsyncSocket { try { this.socket.close(); - if (this.checkerThread != null) this.checkerThread.join(); + if (this.checkerThread != null) { + this.checkerThread.interrupt(); + this.checkerThread.join(); + } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { diff --git a/src/Board.java b/src/Board.java index 0587b0c..1d2df92 100644 --- a/src/Board.java +++ b/src/Board.java @@ -66,7 +66,7 @@ public class Board { * @param semester the semester to be played in */ private void createShip(int semester){ - List shipData = Ship.semeterList.get(semester -1); + List shipData = Ship.semeterList.get(semester); for (int i = 0; i < shipData.size(); i++) { this.ships.add(new Ship(shipData.get(i).size(), shipData.get(i).name())); } diff --git a/src/BoardDisplay.java b/src/BoardDisplay.java index 608a11f..f8542d7 100644 --- a/src/BoardDisplay.java +++ b/src/BoardDisplay.java @@ -21,7 +21,7 @@ public class BoardDisplay extends JPanel { /** * Fügt Buttons zu Liste hinzu und aktualisiert Feld durch Aufruf von paintFields - * @param button + * @param button Jeweiliger Button der hinzugefügt werden soll * @author Joshua Kuklok */ public void addShipButton(ShipButton button) { @@ -31,8 +31,8 @@ public class BoardDisplay extends JPanel { /** * Gibt currentShip zurück - * @return currentShip - * @author Lucas Bronson, Luca Conte, Joshua Kuklok + * @return currentShip Objekt der Klasse Schiff + * @author Lucas Bronson Luca Conte */ public Ship getCurrentShip() { return currentShip; @@ -55,8 +55,8 @@ public class BoardDisplay extends JPanel { // Erstellung vom Spielfeld for (int i = 0; i <= gridSize; i++) { for (int j = 0; j <= gridSize; j++) { - final int x = j - 1; // Temporäre Variable - final int y = i - 1; // Temporäre Variable + final int x = j - 1; // Temporäre Variable für überspringen von Rahmenzeile-/spalte + final int y = i - 1; // Temporäre Variable für überspringen von Rahmenzeile-/spalte if (i == 0 && j == 0) { add(new JLabel(" ")); } else if (i == 0) { @@ -67,7 +67,7 @@ public class BoardDisplay extends JPanel { } else if (j == 0) { JLabel rowLabel = new JLabel(String.valueOf((char) ('A' + i - 1))); rowLabel.setHorizontalAlignment(SwingConstants.CENTER); - rowLabel.setFont(new Font("Arial", Font.BOLD, 14)); + rowLabel.setFont(new Font("Roboto", Font.BOLD, 14)); add(rowLabel); } else { // Spielfeld (interaktive Zellen) @@ -211,7 +211,7 @@ public class BoardDisplay extends JPanel { } for(Ship ship: player.getBoard().getShips()) { if(ship.isShipOnPos(new Point(i,j))) { - fields[i][j].setBackground(Color.LIGHT_GRAY); + fields[i][j].setBackground(Color.WHITE); } } HitResponse hit = this.player.getBoard().getHitResponseOnPoint(new Point(i, j)); diff --git a/src/GameBoard.java b/src/GameBoard.java index 0eaa8d3..4b6aa7a 100644 --- a/src/GameBoard.java +++ b/src/GameBoard.java @@ -40,6 +40,7 @@ public class GameBoard extends JPanel { // Buttons JButton giveUpButton = new JButton("Aufgeben"); + /** * Konstruktor von GameBoard. * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. @@ -136,7 +137,6 @@ public class GameBoard extends JPanel { opponentBoardPanel.addShipButton(shipButton); shipButton.setEnabled(false); } - JToggleButton readyButton = new JToggleButton("Bereit"); readyButton.setBackground(Color.GREEN); rightButtonsPanel.add(readyButton); @@ -159,6 +159,10 @@ public class GameBoard extends JPanel { kontextText.setText(kT2); p1.ready(); if(true) { + remove(readyButton); + remove(resetButton); + remove(rightButtonsPanel); + remove(leftButtonsPanel); readyButton.setEnabled(false); resetButton.setEnabled(false); } @@ -201,11 +205,14 @@ public class GameBoard extends JPanel { /** * Aktualisiert Zustand(kontextText) je nach Zug - * @author Luca Conte + * @author Luca Conte, Joshua Kuklok */ public void refresh() { if (this.p1.myTurn) { - this.kontextText.setText(kT5); + if (!kontextText.getText().equals(kT5)) { + this.kontextText.setText(kT5); + SoundHandler.playSound("yourturn"); + } } else { this.kontextText.setText(kT6); } diff --git a/src/HumanPlayer.java b/src/HumanPlayer.java index 6f00dbe..36203ec 100644 --- a/src/HumanPlayer.java +++ b/src/HumanPlayer.java @@ -9,7 +9,6 @@ public class HumanPlayer extends LocalPlayer { @Override public void shoot(Point point) { if (!this.myTurn) return; - this.myTurn = false; enemy.receiveShoot(point); } } diff --git a/src/JoinGame.java b/src/JoinGame.java index 2cc484d..27144b7 100644 --- a/src/JoinGame.java +++ b/src/JoinGame.java @@ -12,6 +12,9 @@ import java.net.InetSocketAddress; */ public class JoinGame extends JPanel { + // Funktionshilfen + String standardPort = "1234"; + // Grafiken ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); @@ -39,9 +42,9 @@ public class JoinGame extends JPanel { * @param playerName Name des Spielers * @author Lucas Bronson, Joshua Kuklok */ - public JoinGame(MainFrame frame,int g,int playerType,String playerName) { + public JoinGame(MainFrame frame,int g,int playerType,String playerName, int semesterCounter) { setLayout(null); - buildPanel(frame,g,playerType,playerName); + buildPanel(frame,g,playerType,playerName, semesterCounter); } /** @@ -52,7 +55,7 @@ public class JoinGame extends JPanel { * @param playerName Name des Spielers * @author Lucas Bronson, Joshua Kuklok */ - private void buildPanel(MainFrame frame,int g,int playerType,String playerName) { + private void buildPanel(MainFrame frame,int g,int playerType,String playerName, int semesterCounter) { if(g==1){ spielBeitretenLabel= new JLabel("Spiel beitreten"); }else{ @@ -71,6 +74,7 @@ public class JoinGame extends JPanel { } portTextField.setBounds(50, 225, 250, 50); + portTextField.setText(standardPort); spielBeitretenLabel.setFont(robotoFont.deriveFont(50f)); @@ -100,6 +104,7 @@ public class JoinGame extends JPanel { if (ipAddress.isEmpty()) { ipAddress = "0.0.0.0"; } + System.out.println(portTextField.getText()); String portText = portTextField.getText(); int port = Integer.parseInt(portText); @@ -109,13 +114,13 @@ public class JoinGame extends JPanel { try { if(playerType == 0) { - GameController.startOnlineGame(HumanPlayer.class, playerName, address,GameController.semesterToBoardSize(2)); + GameController.startOnlineGame(HumanPlayer.class, playerName, address,GameController.semesterToBoardSize(semesterCounter)); } else if(playerType == 1) { - GameController.startOnlineGame(SpecificAiPlayerEasy.class, playerName, address,GameController.semesterToBoardSize(2)); + GameController.startOnlineGame(SpecificAiPlayerEasy.class, playerName, address,GameController.semesterToBoardSize(semesterCounter)); } else if (playerType == 2) { - GameController.startOnlineGame(SpecificAiPlayerMedium.class, playerName, address,GameController.semesterToBoardSize(2)); + GameController.startOnlineGame(SpecificAiPlayerMedium.class, playerName, address,GameController.semesterToBoardSize(semesterCounter)); } else if (playerType == 3) { - GameController.startOnlineGame(SpecificAiPlayerHard.class, playerName, address,GameController.semesterToBoardSize(2)); + GameController.startOnlineGame(SpecificAiPlayerHard.class, playerName, address,GameController.semesterToBoardSize(semesterCounter)); } } catch (IOException ex) { throw new RuntimeException(ex); diff --git a/src/LocalPlayer.java b/src/LocalPlayer.java index 4da86a6..aac063c 100644 --- a/src/LocalPlayer.java +++ b/src/LocalPlayer.java @@ -15,7 +15,11 @@ public class LocalPlayer extends Player { */ @Override public synchronized void receiveShoot(Point point) { - if (!this.enemy.myTurn) return; + if (!this.enemy.myTurn) { + System.out.println("enemy tried to fire when not their turn!"); + return; + } + this.enemy.myTurn = false; HitResponse hitResponse = board.getHitResponseOnPoint(point); if (!(hitResponse == null)){ @@ -29,7 +33,7 @@ public class LocalPlayer extends Player { switch (hitResponse.getType()) { case HIT, SUNK -> this.myTurn = false; case MISS -> this.myTurn = true; - case VICTORY -> GameController.getMainFrame().showPanelLoose("", this); //TODO Was halt bei victory passiert ist hier wurder verloheren + case VICTORY -> GameController.getMainFrame().showPanelLose("LoseScreen", this); } GameController.getMainFrame().refreshGameBoard(); } @@ -45,7 +49,7 @@ public class LocalPlayer extends Player { switch (hitResponse.getType()) { case HIT, SUNK -> this.myTurn = true; case MISS -> this.myTurn = false; - case VICTORY -> GameController.getMainFrame().showPanelWin("", this); // TODO was halt beim victory passier ist hier wurde gewonnen + case VICTORY -> GameController.getMainFrame().showPanelWin("", this); } GameController.getMainFrame().refreshGameBoard(); } @@ -86,4 +90,4 @@ public class LocalPlayer extends Player { super.ready(); } -} \ No newline at end of file +} diff --git a/src/LooseScreen.java b/src/LooseScreen.java deleted file mode 100644 index 28d105f..0000000 --- a/src/LooseScreen.java +++ /dev/null @@ -1,34 +0,0 @@ -import java.awt.*; -import javax.swing.*; - -/** - * Klasse für Erstellung von looseScreen Objekten - * Dient zur Anzeige das ein Spiel verloren wurde - */ -public class LooseScreen extends JPanel { - JLabel looseLabel = new JLabel("Du hast Verloren"); - JButton okButton = new JButton("Zurück zum Hauptmenü"); - Font robotoFont = new Font("Roboto", Font.BOLD, 45); - - /** - * Konstruktor der LooseScreen Klasse - * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. - * @author Lucas Bronson - */ - public LooseScreen(MainFrame frame) { - setLayout(new BorderLayout()); - buildPanel(frame); - } - - /** - * Panel bauen/Objekte hinzufügen - * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. - * @author Lucas Bronson - */ - public void buildPanel(MainFrame frame) { - add(looseLabel); - okButton.setBounds(650,525,200,50); - looseLabel.setBounds(500,450,500,50); - looseLabel.setFont(robotoFont); - } -} diff --git a/src/LoseScreen.java b/src/LoseScreen.java new file mode 100644 index 0000000..dffa8f2 --- /dev/null +++ b/src/LoseScreen.java @@ -0,0 +1,47 @@ +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.*; + +/** + * Klasse für Erstellung von looseScreen Objekten + * Dient zur Anzeige das ein Spiel verloren wurde + */ +public class LoseScreen extends JPanel { + JLabel loseLabel = new JLabel("Du hast Verloren"); + JButton okButton = new JButton("Zurück zum Hauptmenü"); + Font robotoFont = new Font("Roboto", Font.BOLD, 45); + + /** + * Konstruktor der LoseScreen Klasse + * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. + * @author Lucas Bronson + */ + public LoseScreen(MainFrame frame) { + setLayout(null); + buildPanel(frame); + } + + /** + * Panel bauen/Objekte hinzufügen + * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. + * @author Lucas Bronson, Joshua Kuklok + */ + public void buildPanel(MainFrame frame) { + add(loseLabel); + okButton.setBounds(625,525,200,50); + loseLabel.setBounds(550,450,500,50); + loseLabel.setFont(robotoFont); + SoundHandler.playSound("loose"); + + // Zurückkehren zum Hauptmenü, wenn okButton gedrückt wird + okButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + frame.showPanel("MainMenu"); + } + }); + add(loseLabel); + add(okButton); + } +} diff --git a/src/MainFrame.java b/src/MainFrame.java index e384f92..821417b 100644 --- a/src/MainFrame.java +++ b/src/MainFrame.java @@ -83,7 +83,7 @@ public class MainFrame extends JFrame { public void showPanelSMG(String panelName, int num, int playerType,String playerName) { this.localMult = num; - JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName); + JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName, semesterCounter); mainPanel.add(joinGame, panelName); mainPanel.revalidate(); mainPanel.repaint(); @@ -134,6 +134,12 @@ public class MainFrame extends JFrame { if(player != gameBoard.getP1()){ return; } + + this.gameBoard.getP1().destroy(); + this.gameBoard.getP2().destroy(); + this.gameBoard.removeAll(); + this.gameBoard = null; + WinScreen winScreen = new WinScreen(this); mainPanel.add(winScreen, panelName); mainPanel.revalidate(); @@ -147,13 +153,17 @@ public class MainFrame extends JFrame { * @param player Player von dem die funktion aufgerufen worden ist * @author Lucas Bronson, Peer Ole Wachtel */ - public void showPanelLoose(String panelName, Player player){ + public void showPanelLose(String panelName, Player player){ if(player != gameBoard.getP1()){ return; } + this.gameBoard.getP1().destroy(); this.gameBoard.getP2().destroy(); - LooseScreen looseScreen = new LooseScreen(this); + this.gameBoard.removeAll(); + this.gameBoard = null; + + LoseScreen looseScreen = new LoseScreen(this); mainPanel.add(looseScreen,panelName); mainPanel.revalidate(); mainPanel.repaint(); @@ -170,4 +180,4 @@ public class MainFrame extends JFrame { } this.gameBoard.refresh(); } -} \ No newline at end of file +} diff --git a/src/OnlinePlayer.java b/src/OnlinePlayer.java index 2db0a90..486a48d 100644 --- a/src/OnlinePlayer.java +++ b/src/OnlinePlayer.java @@ -22,12 +22,6 @@ public abstract class OnlinePlayer extends Player implements AsyncSocketListener public abstract void receive(String message); - @Override - public abstract void receiveShoot(Point point); - - @Override - public abstract void receiveHit(HitResponse hitResponse); - @Override public abstract void receiveCoin(boolean coin); diff --git a/src/OnlinePlayer_1_1_0.java b/src/OnlinePlayer_1_1_0.java index b401a6e..6ba3b96 100644 --- a/src/OnlinePlayer_1_1_0.java +++ b/src/OnlinePlayer_1_1_0.java @@ -58,7 +58,23 @@ public class OnlinePlayer_1_1_0 extends OnlinePlayer { Point point = new Point(data.get(0)); int typeIndex = Integer.parseInt(data.get(1)); if (Point.isValidSyntax(data.get(0)) && typeIndex >= 0 && typeIndex < HitResponseType.values().length){ - this.enemy.receiveHit(new HitResponse(typeIndex, point)); + + HitResponse hitResponse = new HitResponse(typeIndex, point); + + this.enemy.receiveHit(hitResponse); + + switch (hitResponse.getType()) { + case HIT, SUNK: + this.myTurn = false; + break; + case MISS: + this.myTurn = true; + break; + + case VICTORY: + // GameController.getMainFrame().showPanelWin("", this.enemy); + break; + } } } break; @@ -102,6 +118,18 @@ public class OnlinePlayer_1_1_0 extends OnlinePlayer { */ @Override public synchronized void receiveHit(HitResponse hitResponse) { + switch (hitResponse.getType()) { + case HIT, SUNK: + this.myTurn = true; + break; + case MISS: + this.myTurn = false; + break; + + case VICTORY: + // GameController.getMainFrame().showPanelLose("", this.enemy); + break; + } super.socket.send(new SocketPackage("HIT", hitResponse.toString())); } @@ -125,4 +153,4 @@ public class OnlinePlayer_1_1_0 extends OnlinePlayer { // SHOULD NEVER BE CALLED ON ONLINE PLAYER. ONLY ON HUMAN PLAYER return; } -} \ No newline at end of file +} diff --git a/src/SoundHandler.java b/src/SoundHandler.java index 41fed75..900bd41 100644 --- a/src/SoundHandler.java +++ b/src/SoundHandler.java @@ -25,7 +25,9 @@ public class SoundHandler { "hit", "./Sound/hit.mp3", "destroyed", "./Sound/hit.mp3", "plop", "./Sound/plop.mp3", - "loose", "./Sound/loosescreenWAH.mp3" + "loose", "./Sound/loosescreenlaugh.mp3", + "win", "./Sound/win.mp3", + "yourturn", "./Sound/yourturn.mp3" )); /** diff --git a/src/Verbinden.java b/src/Verbinden.java index 3e8cdbe..94ed9a1 100644 --- a/src/Verbinden.java +++ b/src/Verbinden.java @@ -7,7 +7,7 @@ import java.awt.*; */ public class Verbinden extends JPanel{ - ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); + //ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); JLabel verbindenLabel = new JLabel("Verbinde . . .",SwingConstants.CENTER); diff --git a/src/WinScreen.java b/src/WinScreen.java index f97dbe5..179800c 100644 --- a/src/WinScreen.java +++ b/src/WinScreen.java @@ -26,7 +26,7 @@ public class WinScreen extends JPanel { /** * Panel bauen/Objekte hinzufuegen * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. - * @author Lucas Bronson + * @author Lucas Bronson, Joshua Kuklok */ public void buildPanel(MainFrame frame) { Timer timer = new Timer(5, new ActionListener() { @@ -50,13 +50,14 @@ public class WinScreen extends JPanel { timer.start(); // Timer starten winLabel.setFont(robotoFont); winLabel.setHorizontalAlignment(SwingConstants.CENTER); - //Zurückkehren zum Hauptmenü, wenn okButton gedrückt wird + SoundHandler.playSound("win"); + + // Zurückkehren zum Hauptmenü, wenn okButton gedrückt wird okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.showPanel("MainMenu"); } - }); add(winLabel); add(okButton); diff --git a/src/startLocalGame.java b/src/startLocalGame.java index 1af1fa1..a2aace0 100644 --- a/src/startLocalGame.java +++ b/src/startLocalGame.java @@ -1,4 +1,5 @@ import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; @@ -6,7 +7,7 @@ import java.util.HashMap; /** * Das startLocalGame Panel dient dem Erstellen eines lokalen Spiels. * Hier kann der Benutzer Spieler inklusive Namen und das Semester, in dem sich der Benutzer befindet, einstellen. - * @author Lucas Bronson, Joshua Kuklok + * @author Lucas Bronson, Joshua Kuklok, Luca Conte */ public class startLocalGame extends JPanel { // Player @@ -44,12 +45,12 @@ public class startLocalGame extends JPanel { JButton rightPlayerLeftButton = new JButton("<-"); JButton rightPlayerRightButton = new JButton("->"); JButton startButton = new JButton("Start!"); - JButton testButton = new JButton("Test"); // Textfelder JTextField leftPlayerTextField = new JTextField(20); JTextField rightPlayerTextField = new JTextField(20); + Font robotoFont = new Font("Roboto", Font.BOLD, 45); /** * Konstruktor der startLocalGame. * Fügt Buttons, Textfelder und Label hinzu. @@ -63,7 +64,8 @@ public class startLocalGame extends JPanel { setLayout(null); // Setze Komponentenpositionen - frameTitle.setBounds(20, 20, 200, 30); + frameTitle.setBounds(20, 20, 500, 60); + frameTitle.setFont(robotoFont.deriveFont(50f)); add(frameTitle); semesterLabel.setBounds(700, 300, 200, 30); @@ -81,13 +83,10 @@ public class startLocalGame extends JPanel { rightPlayerIcon.setBounds(1225, 400, 200, 128); add(rightPlayerIcon); - semesterCounterLabel.setBounds(725, 475, 50, 50); + semesterCounterLabel.setBounds(705, 475, 50, 50); semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER); add(semesterCounterLabel); - testButton.setBounds(500,800,50,50); - add(testButton); - backButton.setBounds(1380, 20, 80, 80); add(backButton); @@ -97,10 +96,10 @@ public class startLocalGame extends JPanel { leftPlayerRightButton.setBounds(250, 450, 50, 50); add(leftPlayerRightButton); - semesterUpButton.setBounds(725, 400, 50, 50); + semesterUpButton.setBounds(705, 400, 50, 50); add(semesterUpButton); - semesterDownButton.setBounds(725, 550, 50, 50); + semesterDownButton.setBounds(705, 550, 50, 50); add(semesterDownButton); rightPlayerLeftButton.setBounds(1200, 450, 50, 50); @@ -196,14 +195,6 @@ public class startLocalGame extends JPanel { } }); - // Um zum Gameboard zu wechseln. - testButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - //frame.showPanelWin("WinPanel"); - } - }); - // Um zum startLocalGameLoadingScreen zu wechseln und Daten an Backend weiterzureichen. startButton.addActionListener(new ActionListener() { @SuppressWarnings("unchecked") @@ -225,41 +216,6 @@ public class startLocalGame extends JPanel { rightPlayerClass, GameController.semesterToBoardSize(semesterCounter) ); - - // if (leftPlayerIcon.getIcon() == humanPlayerIcon) {// TODO Wird name wirklich weitergegeben? - // if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { - // GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { - // GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { - // GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); - // } - // } else if (leftPlayerIcon.getIcon() == aiPlayerEasyIcon) { - // if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { - // GameController.startLocalGame(SpecificAiPlayerEasy.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { - // GameController.startLocalGame(SpecificAiPlayerEasy.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { - // GameController.startLocalGame(SpecificAiPlayerEasy.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); - // } - // } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { - // if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { - // GameController.startLocalGame(SpecificAiPlayerMedium.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { - // GameController.startLocalGame(SpecificAiPlayerMedium.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { - // GameController.startLocalGame(SpecificAiPlayerMedium.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); - // } - // } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { - // if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { - // GameController.startLocalGame(SpecificAiPlayerHard.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { - // GameController.startLocalGame(SpecificAiPlayerHard.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); - // } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { - // GameController.startLocalGame(SpecificAiPlayerHard.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); - // } - // } - } }); diff --git a/src/startMultiplayerGame.java b/src/startMultiplayerGame.java index dcb6530..d4533a0 100644 --- a/src/startMultiplayerGame.java +++ b/src/startMultiplayerGame.java @@ -1,4 +1,5 @@ import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -39,12 +40,14 @@ public class startMultiplayerGame extends JPanel { // Textfelder JTextField PlayerTextField = new JTextField(20); + Font robotoFont = new Font("Roboto", Font.BOLD, 45); + /** * Konstruktor der startLocalGame. * Fügt Buttons, Textfelder und Label hinzu. * Fügt ebenfalls ActionListeners hinzu, damit Buttons etc. ihre gewünschte Funktion haben * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. - * @author Joshua Kuklok + * @author Joshua Kuklok, Lucas Bronson */ startMultiplayerGame(MainFrame frame) { @@ -52,7 +55,8 @@ public class startMultiplayerGame extends JPanel { setLayout(null); // Setze Komponentenpositionen - frameTitle.setBounds(20, 20, 200, 30); + frameTitle.setBounds(20, 20, 500, 60); + frameTitle.setFont(robotoFont.deriveFont(50f)); add(frameTitle); semesterLabel.setBounds(700, 300, 200, 30); @@ -64,7 +68,7 @@ public class startMultiplayerGame extends JPanel { PlayerIcon.setBounds(75, 400, 200, 128); add(PlayerIcon); - semesterCounterLabel.setBounds(725, 475, 50, 50); // zwischen den Up/Down-Buttons + semesterCounterLabel.setBounds(705, 475, 50, 50); // zwischen den Up/Down-Buttons semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER); add(semesterCounterLabel); @@ -77,10 +81,10 @@ public class startMultiplayerGame extends JPanel { PlayerRightButton.setBounds(250, 450, 50, 50); add(PlayerRightButton); - semesterUpButton.setBounds(725, 400, 50, 50); + semesterUpButton.setBounds(705, 400, 50, 50); add(semesterUpButton); - semesterDownButton.setBounds(725, 550, 50, 50); + semesterDownButton.setBounds(705, 550, 50, 50); add(semesterDownButton); joinGameButton.setBounds(1100, 350, 200, 50);