Figurenbewegung

This commit is contained in:
Luca Puderbach
2024-12-09 04:19:00 +01:00
parent c4955e0b57
commit b819e1ca9b
5 changed files with 77 additions and 53 deletions

View File

@@ -236,7 +236,7 @@ public class ClientGameLogic implements ServerInterpreter, GameEventBroker {
playerHandler = msg.getPlayerHandler();
setState(new WaitForTurnState(this));
for (Player player : playerHandler.getPlayers()) {
board.add(new Figure(Vector3f.ZERO, Rotation.NORTH, player.getFigure()));
board.add(new Figure(Vector3f.ZERO, Rotation.NORTH, player.getFigure(), player.getId()));
}
notifyListeners(new ButtonStatusEvent(false));
notifyListeners(new UpdatePlayerView());

View File

@@ -7,6 +7,8 @@ import com.jme3.network.serializing.Serializable;
@Serializable
public class Figure implements Item{
private final int id;
private final String type;
private Vector3f position;
private Rotation rot; // The rotation of the Figure
@@ -16,7 +18,7 @@ public class Figure implements Item{
* at position (0, 0), with a default rotation of NORTH.
*/
private Figure() {
this(null, Rotation.NORTH, "");
this(null, Rotation.NORTH, "", 0);
}
/**
@@ -27,10 +29,19 @@ public class Figure implements Item{
* @param z the z-coordinate of the Figure's initial position
* @param rot the rotation of the Figure
*/
public Figure(Vector3f position, Rotation rot, String type) {
public Figure(Vector3f position, Rotation rot, String type, int id) {
this.position = calculateFieldPosition(0);
this.rot = rot;
this.type = type;
this.id = id;
}
/**
* Return the id corresponding to the players id
* @return the id of the figure
*/
public int getId() {
return id;
}
/**
@@ -92,46 +103,44 @@ public class Figure implements Item{
float baseZ = 0.0f;
switch (fieldID) {
case 0: baseX = -9.1f; baseZ = -9.1f; break;
case 1: baseX = -6.5f; baseZ = -9.1f; break;
case 2: baseX = -4.9f; baseZ = -9.1f; break;
case 3: baseX = -3.3f; baseZ = -9.1f; break;
case 4: baseX = -1.6f; baseZ = -9.1f; break;
case 5: baseX = 0.0f; baseZ = -9.1f; break;
case 6: baseX = 1.6f; baseZ = -9.1f; break;
case 7: baseX = 3.3f; baseZ = -9.1f; break;
case 8: baseX = 4.9f; baseZ = -9.1f; break;
case 9: baseX = 6.5f; baseZ = -9.1f; break;
case 10: baseX = 9.1f; baseZ = -9.1f; break;
case 11: baseX = 9.1f; baseZ = -6.5f; break;
case 12: baseX = 9.1f; baseZ = -4.9f; break;
case 13: baseX = 9.1f; baseZ = -3.3f; break;
case 14: baseX = 9.1f; baseZ = -1.6f; break;
case 15: baseX = 9.1f; baseZ = 0.0f; break;
case 16: baseX = 9.1f; baseZ = 1.6f; break;
case 17: baseX = 9.1f; baseZ = 3.3f; break;
case 18: baseX = 9.1f; baseZ = 4.9f; break;
case 19: baseX = 9.1f; baseZ = 6.5f; break;
case 20: baseX = 9.1f; baseZ = 9.1f; break;
case 21: baseX = 6.5f; baseZ = 9.1f; break;
case 22: baseX = 4.9f; baseZ = 9.1f; break;
case 23: baseX = 3.3f; baseZ = 9.1f; break;
case 24: baseX = 1.6f; baseZ = 9.1f; break;
case 25: baseX = 0.0f; baseZ = 9.1f; break;
case 26: baseX = -1.6f; baseZ = 9.1f; break;
case 27: baseX = -3.3f; baseZ = 9.1f; break;
case 28: baseX = -4.9f; baseZ = 9.1f; break;
case 29: baseX = -6.5f; baseZ = 9.1f; break;
case 30: baseX = -9.1f; baseZ = 9.1f; break;
case 31: baseX = -9.1f; baseZ = 6.5f; break;
case 32: baseX = -9.1f; baseZ = 4.9f; break;
case 33: baseX = -9.1f; baseZ = 3.3f; break;
case 34: baseX = -9.1f; baseZ = 1.6f; break;
case 35: baseX = -9.1f; baseZ = 0.0f; break;
case 36: baseX = -9.1f; baseZ = -1.6f; break;
case 37: baseX = -9.1f; baseZ = -3.3f; break;
case 38: baseX = -9.1f; baseZ = -4.9f; break;
case 39: baseX = -9.1f; baseZ = -6.5f; break;
case 0: baseX = -5.0f; baseZ = -5.0f; break;
case 1: baseX = -3.5f; baseZ = -5.0f; break;
case 2: baseX = -2.5f; baseZ = -5.0f; break;
case 3: baseX = -1.5f; baseZ = -5.0f; break;
case 4: baseX = -0.5f; baseZ = -5.0f; break;
case 5: baseX = 0.5f; baseZ = -5.0f; break;
case 6: baseX = 1.5f; baseZ = -5.0f; break;
case 7: baseX = 2.5f; baseZ = -5.0f; break;
case 8: baseX = 3.5f; baseZ = -5.0f; break;
case 9: baseX = 5.0f; baseZ = -5.0f; break;
case 10: baseX = 5.0f; baseZ = -3.5f; break;
case 11: baseX = 5.0f; baseZ = -2.5f; break;
case 12: baseX = 5.0f; baseZ = -1.5f; break;
case 13: baseX = 5.0f; baseZ = -0.5f; break;
case 14: baseX = 5.0f; baseZ = 0.5f; break;
case 15: baseX = 5.0f; baseZ = 1.5f; break;
case 16: baseX = 5.0f; baseZ = 2.5f; break;
case 17: baseX = 5.0f; baseZ = 3.5f; break;
case 18: baseX = 5.0f; baseZ = 5.0f; break;
case 19: baseX = 3.5f; baseZ = 5.0f; break;
case 20: baseX = 2.5f; baseZ = 5.0f; break;
case 21: baseX = 1.5f; baseZ = 5.0f; break;
case 22: baseX = 0.5f; baseZ = 5.0f; break;
case 23: baseX = -0.5f; baseZ = 5.0f; break;
case 24: baseX = -1.5f; baseZ = 5.0f; break;
case 25: baseX = -2.5f; baseZ = 5.0f; break;
case 26: baseX = -3.5f; baseZ = 5.0f; break;
case 27: baseX = -5.0f; baseZ = 5.0f; break;
case 28: baseX = -5.0f; baseZ = 3.5f; break;
case 29: baseX = -5.0f; baseZ = 2.5f; break;
case 30: baseX = -5.0f; baseZ = 1.5f; break;
case 31: baseX = -5.0f; baseZ = 0.5f; break;
case 32: baseX = -5.0f; baseZ = -0.5f; break;
case 33: baseX = -5.0f; baseZ = -1.5f; break;
case 34: baseX = -5.0f; baseZ = -2.5f; break;
case 35: baseX = -5.0f; baseZ = -3.5f; break;
case 36: baseX = -5.0f; baseZ = -4.5f; break;
case 37: baseX = -5.0f; baseZ = -5.0f; break;
default: throw new IllegalArgumentException("Ungültige Feld-ID: " + fieldID);
}