start game stuff - both online and offline #13

Merged
lgc merged 24 commits from start-game into main 2024-12-13 16:27:43 +00:00
3 changed files with 107 additions and 28 deletions
Showing only changes of commit 3b6ffeb82d - Show all commits

View File

@ -5,13 +5,6 @@ import java.awt.event.ActionListener;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
/*
TODO: evtl an Lucas: die "JoinGame" muss noch informationen erhalten, welche Spieler erstellt wurden und welches Semester
Also die startMultiplayerGame muss JoinGame mit parametern für (HumanPlayer/AiEasy/AiNormal/AiHard, Semesteranzahl, Spielername) (3 Parameter) erhalten
*/
public class JoinGame extends JPanel { public class JoinGame extends JPanel {
ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png");
@ -27,12 +20,12 @@ public class JoinGame extends JPanel {
Font robotoFont = new Font("Roboto", Font.BOLD, 45); Font robotoFont = new Font("Roboto", Font.BOLD, 45);
public JoinGame(MainFrame frame,int g) { public JoinGame(MainFrame frame,int g,int playerType,String playerName) {
setLayout(null); setLayout(null);
buildPanel(frame,g); buildPanel(frame,g,playerType,playerName);
} }
private void buildPanel(MainFrame frame,int g) { private void buildPanel(MainFrame frame,int g,int playerType,String playerName) {
if(g==1){ if(g==1){
spielBeitretenLabel= new JLabel("Spiel beitreten"); spielBeitretenLabel= new JLabel("Spiel beitreten");
}else{ }else{
@ -43,10 +36,12 @@ public class JoinGame extends JPanel {
losButton.setBounds(320, 225, 100, 50); losButton.setBounds(320, 225, 100, 50);
backButton.setBounds(1380, 20, 80, 80); backButton.setBounds(1380, 20, 80, 80);
ipLabel.setBounds(50, 125, 200, 30);
portLabel.setBounds(50, 200, 200, 30); portLabel.setBounds(50, 200, 200, 30);
if(g==1) { //Wenn man Spiel erstellen will werden IP-Felder nicht angezeigt.
ipLabel.setBounds(50, 125, 200, 30);
ipTextField.setBounds(50, 150, 250, 50); ipTextField.setBounds(50, 150, 250, 50);
}
portTextField.setBounds(50, 225, 250, 50); portTextField.setBounds(50, 225, 250, 50);
@ -61,31 +56,38 @@ public class JoinGame extends JPanel {
add(backButton); add(backButton);
backButton.addActionListener(e -> frame.showPanel("MultiplayerGame")); backButton.addActionListener(e -> frame.showPanel("MultiplayerGame"));
losButton.addActionListener(e -> frame.showPanel("Verbinden")); //losButton.addActionListener(e -> frame.showPanel("Verbinden"));
losButton.addActionListener(new ActionListener() { losButton.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
String ipAddress = ipTextField.getText(); String ipAddress = ipTextField.getText();
if (ipAddress.equals("")) {
ipAddress = "0.0.0.0";
}
String portText = portTextField.getText(); String portText = portTextField.getText();
int port = Integer.parseInt(portText); int port = Integer.parseInt(portText);
InetSocketAddress address = new InetSocketAddress(ipAddress, port); InetSocketAddress address = new InetSocketAddress(ipAddress, port);
frame.showPanel("Verbinden"); frame.showPanel("Verbinden");
//public static void startOnlineGame(Class<? extends LocalPlayer> localPlayerClass, String localPlayerName, InetSocketAddress
// address, int size) throws IOException {
if(true) { //Beispiel (für playertape wäre z.B. 1 humanPlayer etc.)
try { try {
GameController.startOnlineGame(HumanPlayer.class, "TollerTest", address,GameController.semesterToBoardSize(2)); // if(playerType == 0) {
GameController.startOnlineGame(HumanPlayer.class, playerName, address,GameController.semesterToBoardSize(2));
} else if(playerType == 1) {
GameController.startOnlineGame(SpecificAiPlayerEasy.class, playerName, address,GameController.semesterToBoardSize(2));
} else if (playerType == 2) {
GameController.startOnlineGame(SpecificAiPlayerMedium.class, playerName, address,GameController.semesterToBoardSize(2));
} else if (playerType == 3) {
GameController.startOnlineGame(SpecificAiPlayerHard.class, playerName, address,GameController.semesterToBoardSize(2));
}
} catch (IOException ex) { } catch (IOException ex) {
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
} }
}
}); });
} }
} }

View File

@ -64,11 +64,11 @@ public class MainFrame extends JFrame {
} }
// --- ShowPanel der startMultiplayerGame Klasse // --- ShowPanel der startMultiplayerGame Klasse
public void showPanelSMG(String panelName, int num) { public void showPanelSMG(String panelName, int num, int playerType,String playerName) {
this.localMult = num; this.localMult = num;
//if (!isPanelPresent(panelName)) { //TODO potentiell raus //if (!isPanelPresent(panelName)) { //TODO potentiell raus
JoinGame joinGame = new JoinGame(this, localMult); JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName);
mainPanel.add(joinGame, panelName); mainPanel.add(joinGame, panelName);
mainPanel.revalidate(); // Refresh mainPanel.revalidate(); // Refresh
mainPanel.repaint(); mainPanel.repaint();
@ -128,11 +128,12 @@ public class MainFrame extends JFrame {
mainPanel.repaint(); mainPanel.repaint();
}*/ }*/
/* Tut wohl gar nicht, weils nicht aufgerufen wird hoppla
public static void main(String[] args) { public static void main(String[] args) {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
MainFrame frame = new MainFrame(); MainFrame frame = new MainFrame();
frame.setVisible(true); frame.setVisible(true);
}); });
} }
*/
} }

View File

@ -1,4 +1,6 @@
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// TODO // TODO
// Evtl. ist Namen selber setzten noch unmöglich // Evtl. ist Namen selber setzten noch unmöglich
@ -121,8 +123,82 @@ public class startMultiplayerGame extends JPanel {
// ActionListener für den "Back" Button, um zum vorherigen Panel zurückzukehren // ActionListener für den "Back" Button, um zum vorherigen Panel zurückzukehren
backButton.addActionListener(e -> frame.showPanel("MainMenu")); backButton.addActionListener(e -> frame.showPanel("MainMenu"));
joinGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",1)); //joinGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",1));
createGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",0)); //createGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",0));
joinGameButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername
if (PlayerIcon.getIcon() == humanPlayerIcon) { // TODO Wird name wirklich weitergegeben?
frame.showPanelSMG("JoinGame",1,0, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) {
frame.showPanelSMG("JoinGame",1,1, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) {
frame.showPanelSMG("JoinGame",1,2, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) {
frame.showPanelSMG("JoinGame",1,3, PlayerNickname);
}
}
});
createGameButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername
if (PlayerIcon.getIcon() == humanPlayerIcon) { // TODO Wird name wirklich weitergegeben?
frame.showPanelSMG("JoinGame",0,0, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) {
frame.showPanelSMG("JoinGame",0,1, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) {
frame.showPanelSMG("JoinGame",0,2, PlayerNickname);
} else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) {
frame.showPanelSMG("JoinGame",0,3, PlayerNickname);
}
}
});
/*
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.showPanelSLGLS("startLocalGameLoadingScreen", semesterCounter); //TODO
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(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 (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) {
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 (rightPlayerIcon.getIcon() == aiPlayerHardIcon) {
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));
}
}
}
});
*/
} }
// TOGGLE METHODEN // TOGGLE METHODEN