TIME-OUT-Tafel wie im Original (Menue-Rahmen + gelbe Schrift, 2.5s, dann Leben -1 und Respawn)
This commit is contained in:
@@ -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
|
am Spawn, seitlich(0) nach Bewegung. Die Tabelle [4][8,8,8] ist also die
|
||||||
Aufwaerts-Sprungpose (Set beim Absprung), nicht "Idle" -- Eintrag (26)/
|
Aufwaerts-Sprungpose (Set beim Absprung), nicht "Idle" -- Eintrag (26)/
|
||||||
(27) entsprechend ueberholt.
|
(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
@@ -803,14 +803,35 @@ def run_level(clock, assets, audio_paths, map_name='W1L1'):
|
|||||||
|
|
||||||
keys = pygame.key.get_pressed()
|
keys = pygame.key.get_pressed()
|
||||||
time_left = info['time'] - (time.monotonic() - start)
|
time_left = info['time'] - (time.monotonic() - start)
|
||||||
# Zeit abgelaufen -> wie Herzen leer: Sterbeanimation, Leben -1
|
# Zeit abgelaufen -> TIME-OUT-Tafel (Original-Screen, Stefans
|
||||||
# (Stefans Fund: "bei 0 wird mir kein Leben abgezogen")
|
# Screenshot: Menue-Rahmen + "TIME OUT"), dann Leben -1 und Respawn
|
||||||
if dying is None and time_left <= 0:
|
if dying is None and time_left <= 0:
|
||||||
hearts = 0
|
from .menu import MenuAssets
|
||||||
player.hurt_t = 0.0
|
m = MenuAssets(assets)
|
||||||
player.force_slot = SLOT_DEATH
|
panel = m.menu_bg.copy()
|
||||||
dying = dict(t=0.0, vy=-260.0,
|
txt = m.font_big.render('TIME OUT')
|
||||||
drop_y=player.y - 40.0, drop_vy=-30.0)
|
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:
|
if dying is None:
|
||||||
player.update(level, dt, keys)
|
player.update(level, dt, keys)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user