LEVEL 1 SPIELBAR: game/level.py -- Tiles, Kamera, Tony-Physik, HUD, Musik
Weltkarte: SPACE startet Level 1 (Original-Verhalten per DOSBox-Referenz: Return tut dort nichts, kein sichtbarer Level-Cursor am Spielstart). Level 1 = W1L1.MAP -- per Template-Matching des DOSBox-Gameplay-Screenshots gegen die gerenderten Maps identifiziert (W1L0 ist NICHT Level 1). game/level.py: - Level: MAP+ICO+Weltpalette laden, komplette Map einmalig vorrendern, Kamera blittet 320x176-Ausschnitt (HUD 320x24 darunter, wie Original). - Kollision: MAP-ctype Bit 32 = solide (40=Boden, 32=Fuellung; empirisch an der Spawn-Plattform verifiziert). - Tony: TONY.BOB (53 Frames; 8-Phasen-Gehzyklus, gerade=links/ungerade= rechts), AABB-Physik gegen das Tile-Grid, laufen/springen/ducken, Fusspunkt-basiert. Physikwerte v1 nach Gefuehl (Feinschliff nach Test). - HUD-Nachbildung (Keks/Item/Score/Herzen/Leben/Uhr 10:00-Countdown) mit FON_1B-Ziffern; GAMEBAR-Icons geladen (Original-Ziffern-Palette unklar). - Levelmusik: ONGAME2 Song 0 als v1-ANNAHME (nach Gehoer korrigieren, wie beim Factor5-Sound); wird im Audio-Preload mitgerendert. - ESC -> zurueck zur Karte (Titelmusik loopt wieder), Fenster-X -> Ende. Verifiziert: E2E unter Xvfb mit gehaltenen XTEST-Tasten -- laufen (Kamera scrollt), springen, Plattformkante runterfallen, unterm Brueckenbogen zurueck, ESC->Karte->Menue->QUIT rc=0. Level-Standbild deckungsgleich zur DOSBox-Referenz. --once-Regression exit 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
4517efbdf8
commit
973e290cf6
+11
-3
@@ -414,14 +414,22 @@ def run_highscores(clock, m):
|
||||
|
||||
def run_worldmap(clock, m):
|
||||
'''Weltkarte (KARTE.PCC -- kompletter 320x200-Screen inkl. Rahmen und
|
||||
Charakteren). v1: statisch; die kleinen Animationsframes KARTE0-9 und die
|
||||
Levelauswahl folgen mit dem Gameplay. ESC/Taste -> zurueck ins Menue.'''
|
||||
Charakteren). Wie im Original (DOSBox-Referenz 25.07.2026): SPACE startet
|
||||
Level 1 (Return tut im Original nichts, wir nehmen beides; Pfeiltasten
|
||||
bewegen am Spielstart keinen sichtbaren Cursor -- es ist nur Level 1
|
||||
verfuegbar). ESC -> zurueck ins Menue.
|
||||
Rueckgabe: 'level' | 'menu' | 'quit'. Die Karten-Animationen (KARTE0-9)
|
||||
folgen spaeter.'''
|
||||
canvas = m.karte
|
||||
|
||||
def draw(_t):
|
||||
_present(canvas)
|
||||
|
||||
def key(event):
|
||||
return 'menu'
|
||||
if event.key == pygame.K_ESCAPE:
|
||||
return 'menu'
|
||||
if event.key in (pygame.K_SPACE, pygame.K_RETURN):
|
||||
return 'level'
|
||||
return None
|
||||
|
||||
return _menu_loop(clock, draw, key)
|
||||
|
||||
Reference in New Issue
Block a user