mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2024-11-25 02:19:45 +01:00
Protoyp Würfel eingefügt
This commit is contained in:
parent
20949b641e
commit
a33d422547
@ -1,7 +1,10 @@
|
|||||||
package pp.monopoly.client.gui;
|
package pp.monopoly.client.gui;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import com.jme3.math.Vector3f;
|
import com.jme3.math.Vector3f;
|
||||||
import com.jme3.scene.Geometry;
|
import com.jme3.scene.Geometry;
|
||||||
|
import com.simsilica.lemur.Axis;
|
||||||
import com.simsilica.lemur.Button;
|
import com.simsilica.lemur.Button;
|
||||||
import com.simsilica.lemur.Container;
|
import com.simsilica.lemur.Container;
|
||||||
import com.simsilica.lemur.component.SpringGridLayout;
|
import com.simsilica.lemur.component.SpringGridLayout;
|
||||||
@ -17,10 +20,11 @@ public class Toolbar {
|
|||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
private final Container toolbarContainer;
|
private final Container toolbarContainer;
|
||||||
private final Geometry cube; // Referenz auf den Würfel
|
private final Geometry cube; // Referenz auf den Würfel
|
||||||
private final float boardLimit = 0.95f; // Grenzen des Bretts (leicht angepasst)
|
private final float boardLimit = 0.95f; // Grenzen des Bretts
|
||||||
private final float stepSize = 0.18f; // Schrittgröße pro Bewegung
|
private final float stepSize = 0.18f; // Schrittgröße pro Bewegung
|
||||||
private int currentPosition = 0; // Aktuelle Position auf dem Spielfeld
|
private int currentPosition = 0; // Aktuelle Position auf dem Spielfeld
|
||||||
private final int positionsPerSide = 10; // Anzahl der Positionen pro Seite
|
private final int positionsPerSide = 10; // Anzahl der Positionen pro Seite
|
||||||
|
private final Random random = new Random(); // Zufallsgenerator für den Würfelwurf
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Konstruktor für die Toolbar.
|
* Konstruktor für die Toolbar.
|
||||||
@ -33,7 +37,7 @@ public class Toolbar {
|
|||||||
this.cube = cube;
|
this.cube = cube;
|
||||||
|
|
||||||
// Erstelle die Toolbar
|
// Erstelle die Toolbar
|
||||||
toolbarContainer = new Container(new SpringGridLayout());
|
toolbarContainer = new Container(new SpringGridLayout(Axis.X, Axis.Y));
|
||||||
|
|
||||||
// Setze die Position am unteren Rand und die Breite
|
// Setze die Position am unteren Rand und die Breite
|
||||||
toolbarContainer.setLocalTranslation(
|
toolbarContainer.setLocalTranslation(
|
||||||
@ -56,6 +60,7 @@ public class Toolbar {
|
|||||||
private void initializeButtons() {
|
private void initializeButtons() {
|
||||||
addButton("Vorwärts", 1); // Bewegung nach vorne
|
addButton("Vorwärts", 1); // Bewegung nach vorne
|
||||||
addButton("Rückwärts", -1); // Bewegung nach hinten
|
addButton("Rückwärts", -1); // Bewegung nach hinten
|
||||||
|
addDiceRollButton(); // Würfel-Button
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,10 +76,29 @@ public class Toolbar {
|
|||||||
toolbarContainer.addChild(button);
|
toolbarContainer.addChild(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt den Würfel-Button hinzu, der die Figur entsprechend der gewürfelten Zahl bewegt.
|
||||||
|
*/
|
||||||
|
private void addDiceRollButton() {
|
||||||
|
Button diceButton = new Button("Würfeln");
|
||||||
|
diceButton.setPreferredSize(new Vector3f(150, 50, 0)); // Größe des Buttons
|
||||||
|
diceButton.addClickCommands(source -> rollDice());
|
||||||
|
toolbarContainer.addChild(diceButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simuliert einen Würfelwurf und bewegt die Figur entsprechend.
|
||||||
|
*/
|
||||||
|
private void rollDice() {
|
||||||
|
int diceRoll = random.nextInt(6) + 1; // Zahl zwischen 1 und 6
|
||||||
|
System.out.println("Gewürfelt: " + diceRoll);
|
||||||
|
moveCube(diceRoll); // Bewege die Figur um die gewürfelte Zahl
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bewegt den Würfel basierend auf der aktuellen Position auf dem Brett.
|
* Bewegt den Würfel basierend auf der aktuellen Position auf dem Brett.
|
||||||
*
|
*
|
||||||
* @param step Schrittweite (+1 für vorwärts, -1 für rückwärts)
|
* @param step Schrittweite (+1 für vorwärts, -1 für rückwärts oder andere Werte)
|
||||||
*/
|
*/
|
||||||
private void moveCube(int step) {
|
private void moveCube(int step) {
|
||||||
currentPosition = (currentPosition + step + 4 * positionsPerSide) % (4 * positionsPerSide);
|
currentPosition = (currentPosition + step + 4 * positionsPerSide) % (4 * positionsPerSide);
|
||||||
|
Loading…
Reference in New Issue
Block a user