Steh-Pose auf Slot 17 (frontal, wie DOSBox-Referenz) korrigiert; Slot 8 nur noch als 0.17s-Uebergangspose, Idle-Warteanimation nach 4s

This commit is contained in:
2026-07-26 10:59:34 +02:00
parent b9532758cb
commit bcd29cbc61
2 changed files with 24 additions and 3 deletions
+12 -3
View File
@@ -50,7 +50,8 @@ SWIM_GRAVITY = 240.0 # Smacks im Wasser: traege sinken
SWIM_KICK = -140.0 # Schwimmstoss mit Space
WALK_ANIM_FPS = 17.5 # Original: delay 4 Ticks @70Hz (Binary-Tabelle)
RUN_ANIM_FPS = 17.5 # Rad hat dasselbe delay 4
IDLE_ANIM_AFTER = 5.0 # Sekunden Stillstand bis zur Idle-Animation
IDLE_ANIM_AFTER = 4.0 # Sekunden Stillstand bis zur Idle-Animation
# (DOSBox-Timeline: Schachtel nach ~4s)
IDLE_ANIM_FPS = 2.8 # Original: delay 25 Ticks @70Hz
WATER_DAMAGE_EVERY = 1.5 # im Wasser: alle 1.5s ein Herz (Stefan: 5s war arg lang)
SPAWN_ANIM_SECONDS = 1.1 # Start-Sprite beim Levelstart/Charakterwechsel
@@ -85,12 +86,17 @@ SLOPE_CT = 16
# Charakter hat, ergibt sich daraus, WELCHE Slots sein BOB enthaelt
# (nur Tony hat 13-16 = rennen, nur Smacks/Toucan 25-28 = schwimmen,
# nur Toucan 29-31 als Richtungs-Paare = fliegen, nur Coco 35-44 = hangeln).
SLOT_IDLE = 8
# Slot 17 = FRONTALE Steh-Pose (DOSBox-Abgleich stand_timeline.png: das
# Original steht mit Bauch zur Kamera -- BOB 34 bei Tony). Slot 8 (BOB 16)
# ist nur eine Seiten-/Uebergangspose und sah beim Stehen falsch aus
# (Stefans Feedback "Stand-Animation passt nicht").
SLOT_IDLE = 17
SLOT_IDLE_LANDING = 8 # kurze Pose direkt nach der Landung (Tabelle [4][8,8,8])
SLOT_JUMP = 9 # Springen/Fallen
SLOT_SQUAT = 10 # Absprung-Hocke
SLOT_ARMUP = 11 # Arm hoch / Daumen hoch (Spawn-Pose, Tabelle [70][10,11,10])
SLOT_DUCK = 12
SLOT_HURT = 17 # Schadens-/Schreck-Frames 17,18
SLOT_STAND_ALT = 18 # zweite Frontal-Pose (Blinzeln/Variante)
SLOT_DEATH = 19 # Tod (19, Sturz 20)
SLOT_SWIM_IDLE = 25 # Treiben im Wasser (erster Schwimm-Frame; 22-24 sind
# die "Schachtel essen"-Posen der Idle-Warteanimation)
@@ -575,6 +581,9 @@ class Player:
if self.idle_t >= IDLE_ANIM_AFTER:
i = int((self.idle_t - IDLE_ANIM_AFTER) * IDLE_WAIT_FPS) % len(ANIM_IDLE_WAIT)
return ANIM_IDLE_WAIT[i]
if self.idle_t < 0.17:
# kurze Uebergangspose beim Anhalten/Landen (Original [4][8,8,8])
return SLOT_IDLE_LANDING
return SLOT_IDLE
def draw(self, screen, cam_x, cam_y):