mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2025-07-31 09:27:42 +02:00
Animation Hinzugefügt
This commit is contained in:
@@ -98,49 +98,51 @@ public class Figure implements Item{
|
||||
moveTo(calculateFieldPosition(fieldId));
|
||||
}
|
||||
|
||||
private Vector3f calculateFieldPosition(int fieldID) {
|
||||
public Vector3f calculateFieldPosition(int fieldID) {
|
||||
float baseX = 0.0f;
|
||||
float baseZ = 0.0f;
|
||||
|
||||
switch (fieldID) {
|
||||
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;
|
||||
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;
|
||||
default: throw new IllegalArgumentException("Ungültige Feld-ID: " + fieldID);
|
||||
}
|
||||
|
||||
@@ -148,7 +150,19 @@ public class Figure implements Item{
|
||||
float zOffset = new Random().nextFloat();
|
||||
|
||||
//TODO adjust y pos
|
||||
return new Vector3f(baseX + xOffset, 1, baseZ + zOffset);
|
||||
return new Vector3f(baseX , 1, baseZ );
|
||||
}
|
||||
|
||||
public int getCurrentFieldID() {
|
||||
Vector3f pos = getPos();
|
||||
for (int fieldID = 0; fieldID < 40; fieldID++) {
|
||||
Vector3f fieldPosition = calculateFieldPosition(fieldID);
|
||||
if (pos.distance(fieldPosition) < 0.1f) { // Toleranz für Positionsvergleich
|
||||
System.out.println("Current field ID: " + fieldID);
|
||||
return fieldID;
|
||||
}
|
||||
}
|
||||
throw new IllegalStateException("Current field ID could not be determined from position: " + pos);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user