TIME-OUT-Tafel wie im Original (Menue-Rahmen + gelbe Schrift, 2.5s, dann Leben -1 und Respawn)

This commit is contained in:
2026-07-26 11:29:45 +02:00
parent fc3149a7a6
commit 5fd8a1a6e6
2 changed files with 42 additions and 7 deletions
+14
View File
@@ -2010,3 +2010,17 @@ Sprung = Hocke(10) -> aufwaerts(8) -> abwaerts(9); Stehen = frontal(17)
am Spawn, seitlich(0) nach Bewegung. Die Tabelle [4][8,8,8] ist also die
Aufwaerts-Sprungpose (Set beim Absprung), nicht "Idle" -- Eintrag (26)/
(27) entsprechend ueberholt.
## 26.07.2026 (29) -- TIME-OUT-Tafel + Sprungweite statt -hoehe
- Stefans Screenshot: Original zeigt bei abgelaufener Zeit eine
TIME-OUT-Tafel (Menue-Rahmen, weisse Box, gelbe Schrift). Umgesetzt:
2.5s Tafel (Taste bricht ab), dann Leben -1 + Respawn mit frischer
Zeit; Sterbeanimation entfaellt beim Timeout.
- Sprung-Korrektur "nicht hoeher sondern weiter": JUMP_VELOCITY zurueck
auf -400 (Scheitel 86px), stattdessen AIR_SPEED_FACTOR=1.27 (in der
Luft schnelleres Horizontaltempo) -> Sprungweite 92 -> 114px (~+1
Blattlaenge, Stefans Live-DOSBox-Vergleich).
- DOSBox-Durchspiel-Aufnahme W1L1 laeuft (capture3.py mit down/up-
Timeline: Rechts halten + periodische Spruenge, Idle-Fenster,
Links-Passage; ~1800 Frames a 0.2s nach scratchpad/w1l1_run/).
+28 -7
View File
@@ -803,14 +803,35 @@ def run_level(clock, assets, audio_paths, map_name='W1L1'):
keys = pygame.key.get_pressed()
time_left = info['time'] - (time.monotonic() - start)
# Zeit abgelaufen -> wie Herzen leer: Sterbeanimation, Leben -1
# (Stefans Fund: "bei 0 wird mir kein Leben abgezogen")
# Zeit abgelaufen -> TIME-OUT-Tafel (Original-Screen, Stefans
# Screenshot: Menue-Rahmen + "TIME OUT"), dann Leben -1 und Respawn
if dying is None and time_left <= 0:
hearts = 0
player.hurt_t = 0.0
player.force_slot = SLOT_DEATH
dying = dict(t=0.0, vy=-260.0,
drop_y=player.y - 40.0, drop_vy=-30.0)
from .menu import MenuAssets
m = MenuAssets(assets)
panel = m.menu_bg.copy()
txt = m.font_big.render('TIME OUT')
panel.blit(txt, ((320 - txt.get_width()) // 2, 72))
end = time.monotonic() + 2.5
while time.monotonic() < end:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return 'quit'
if event.type == pygame.KEYDOWN:
end = 0
intro._blit_centered(intro.build_letterboxed(panel))
pygame.display.flip()
clock.tick(30)
lives -= 1
if lives <= 0:
return 'map'
hearts = 6
player.x, player.y = spawn_px
player.vy = 0.0
player.spawn_t = SPAWN_ANIM_SECONDS
player.moved = False
player.jump_lock = True
start = time.monotonic()
continue
if dying is None:
player.update(level, dt, keys)
else: