Added (currently not working) ship rotation method, colored Ready and Reset button, added (currently not working) Player name Labels etc. to GameBoard
This commit is contained in:
parent
a7e7d75c62
commit
bf78db9404
|
@ -14,6 +14,7 @@ public class BoardDisplay extends JPanel {
|
|||
private List <Ship> ships;
|
||||
private Ship currentShip;
|
||||
private Player player;
|
||||
private boolean horizontal = true;
|
||||
|
||||
/**
|
||||
* Konstruktor der startLocalGame.
|
||||
|
@ -69,8 +70,12 @@ public class BoardDisplay extends JPanel {
|
|||
field.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
togglePlacementDirection(); // Ausrichtung ändern
|
||||
} else if (SwingUtilities.isLeftMouseButton(e)) {
|
||||
Point o = new Point(x, y);
|
||||
handleFieldClick(o);
|
||||
handleFieldClick(o); // Linksklick -> Schiff platzieren
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -79,6 +84,8 @@ public class BoardDisplay extends JPanel {
|
|||
// this.ships = new ArrayList<Ship>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void selectCurrentShip(Ship ship) {
|
||||
this.currentShip = ship;
|
||||
}
|
||||
|
@ -147,8 +154,17 @@ public class BoardDisplay extends JPanel {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO Funktion beschreiben etc.
|
||||
* @param o
|
||||
* Wechselt die Platzierungsrichtung zwischen horizontal und vertikal.
|
||||
*/
|
||||
private void togglePlacementDirection() {
|
||||
horizontal = !horizontal;
|
||||
String direction = horizontal ? "horizontal" : "vertikal";
|
||||
System.out.println("Platzierungsrichtung geändert zu: " + direction);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handhabt das Platzieren eines Schiffs auf dem Spielfeld.
|
||||
* @param o Die Koordinaten des Klicks.
|
||||
*/
|
||||
private void handleFieldClick(Point o) {
|
||||
if (!this.currentShip.setPosition(o,player.getBoard().getShips(),this.gridSize)) {
|
||||
|
|
|
@ -8,6 +8,8 @@ import java.awt.event.MouseEvent;
|
|||
import java.awt.event.MouseAdapter;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
// TODO wenn rechtklick auf board dann schiff rotation ändern UND Readybutton farbe Readybutton kontexttext und Spielernamen anzeigen
|
||||
/**
|
||||
* Das GameBoard dient als Panel, in dem das tatsächliche Spiel stattfindet.
|
||||
* Der Benutzer kann hier seine Schiffe platzieren, das Spiel starten etc.
|
||||
|
@ -103,9 +105,11 @@ public class GameBoard extends JPanel {
|
|||
}
|
||||
|
||||
JToggleButton rightPlayerModul7 = new JToggleButton("Bereit");
|
||||
rightPlayerModul7.setBackground(Color.GREEN);
|
||||
rightButtonsPanel.add(rightPlayerModul7);
|
||||
|
||||
JToggleButton leftPlayerModul7 = new JToggleButton("Reset");
|
||||
leftPlayerModul7.setBackground(Color.RED);
|
||||
leftButtonsPanel.add(leftPlayerModul7);
|
||||
// Panel für die Buttons des rechten Spielers (ganz rechts)
|
||||
|
||||
|
@ -118,6 +122,26 @@ public class GameBoard extends JPanel {
|
|||
centerPanel.add(ownBoardPanel);
|
||||
centerPanel.add(opponentBoardPanel);
|
||||
|
||||
// Spieler-Namen über den Spielfeldern hinzufügen
|
||||
JPanel playerNamesPanel = new JPanel();
|
||||
playerNamesPanel.setLayout(new GridLayout(1, 2)); // Zwei Labels nebeneinander
|
||||
JLabel player1NameLabel = new JLabel(p1.getName(), SwingConstants.CENTER);
|
||||
JLabel player2NameLabel = new JLabel(p2.getName(), SwingConstants.CENTER);
|
||||
System.out.println(player2NameLabel.getText());
|
||||
|
||||
// Schrift und Formatierung der Labels
|
||||
player1NameLabel.setFont(new Font("Roboto", Font.BOLD, 18));
|
||||
player2NameLabel.setFont(new Font("Roboto", Font.BOLD, 18));
|
||||
|
||||
// Spieler-Labels zum Panel hinzufügen
|
||||
playerNamesPanel.add(player1NameLabel);
|
||||
playerNamesPanel.add(player2NameLabel);
|
||||
|
||||
// Spieler-Namen-Panel oberhalb der Spielfelder hinzufügen
|
||||
JPanel namesAndBoardsPanel = new JPanel(new BorderLayout());
|
||||
namesAndBoardsPanel.add(playerNamesPanel, BorderLayout.NORTH);
|
||||
namesAndBoardsPanel.add(centerPanel, BorderLayout.CENTER);
|
||||
|
||||
// Panels dem Hauptlayout hinzufügen
|
||||
add(leftButtonsPanel, BorderLayout.WEST);
|
||||
add(rightButtonsPanel, BorderLayout.EAST);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
//TODO Generell Buttons in GameBoard anpassen
|
||||
|
||||
/**
|
||||
* Der MainFrame dient als Hub und Übergreifendes Fenster auf dem alle weiteren Panel angezeigt werden.
|
||||
* Dadurch werden keine weiteren Fenster geöffnet.
|
||||
|
|
|
@ -15,5 +15,4 @@ public class ShipButton extends JButton {
|
|||
public void buttonPressed() {
|
||||
this.setEnabled(!ship.isPlaced());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue