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
@@ -1371,3 +1371,45 @@ deckungsgleich).
|
||||
2. Gameplay: Tony auf W1L0 (Map/Tiles/Sprites laengst dekodiert).
|
||||
3. Copyright-Tafel-Ausloeser im Original klaeren (niedrig).
|
||||
4. Highscores persistent machen + Eintrag-Eingabe (erst mit Gameplay relevant).
|
||||
|
||||
## 25.07.2026 -- LEVEL 1 SPIELBAR (erster Gameplay-Slice)
|
||||
|
||||
Stefans Auftrag: Weltkarte Level 1 auswaehlbar + "schauen was du aus Level 1
|
||||
machst". Ergebnis: das erste Level laeuft.
|
||||
|
||||
**Referenz-Erkenntnisse (DOSBox, Xvfb+XTEST mit gehaltenen Tasten):**
|
||||
- Auf der Weltkarte startet SPACE das Level (Return tut nichts, Pfeiltasten
|
||||
bewegen am Spielstart keinen sichtbaren Cursor -- 0 Pixel Diff nach 2x
|
||||
Right). Kurze Schwarzblende, dann steht das Level sofort.
|
||||
- **Level 1 = W1L1.MAP** -- per Template-Matching des Gameplay-Screenshots
|
||||
gegen die gerenderten Maps (diff W1L1=35.4 vs W1L0=56.5/W1L2=58.8; Kamera-
|
||||
Match bei Map-Pixel 128,496). W1L0 ist also NICHT Level 1 (vermutlich
|
||||
Bonus-/Sonderlevel).
|
||||
- HUD unten 320x24 (Viewport 320x176): Kellogg's-Schriftzug, Keks-Zaehler,
|
||||
Item-Box, Score, 4 Herzen, Tony-Kopf + Leben (3), Uhr zaehlt von 10:00.
|
||||
- Kollision: MAP-ctype **Bit 32 = solide** (40=Boden-Oberkante=32|8,
|
||||
32=Fuellung; 0=Luft, 4=Item-Marker, 16=Special). Empirisch an der
|
||||
Spawn-Plattform (Zeile 40) verifiziert.
|
||||
- TONY.BOB-Frames: 8-Phasen-Gehzyklus, GERADE Indizes = links, UNGERADE =
|
||||
rechts (0..15); 16/17 Sprung, 24/25 Ducken (Zuordnung v1, ggf. justieren).
|
||||
- GAMEBAR.BOB: 0-9 Ziffern, 10-16 Herzen/Schluessel(rot/blau/gruen)/Kopf --
|
||||
Ziffern rendern mit bob-Regel-Palette dunkelrot statt weiss wie im
|
||||
Original-HUD (Laufzeit-Palette unklar) -> HUD v1 nutzt FON_1B-Ziffern.
|
||||
|
||||
**Implementiert (game/level.py, Commit siehe git):** Level-Klasse (MAP+ICO
|
||||
einmal komplett vorgerendert, Kamera blittet Ausschnitt), Tony (AABB-Physik
|
||||
gegen Tile-Grid: laufen 110px/s, Sprung -300px/s, g=900 -- v1 nach Gefuehl,
|
||||
Feinschliff nach Stefans Test), HUD-Nachbildung, ONGAME2-Song0 als
|
||||
Levelmusik-ANNAHME (wie Factor5: nach Gehoer korrigieren). ESC -> Karte
|
||||
(Titelmusik startet wieder). Weltkarte: Space/Return -> Level.
|
||||
ONGAME2 wird im Audio-Preload mitgerendert (Levelstart blockiert nie).
|
||||
|
||||
**Verifiziert:** E2E unter Xvfb mit gehaltenen Tasten -- Tony laeuft rechts
|
||||
(Kamera scrollt), faellt Plattformkante runter, laeuft links unterm
|
||||
Brueckenbogen durch, ESC->Karte->Menue->QUIT rc=0. Level-Standbild praktisch
|
||||
deckungsgleich mit DOSBox-Referenz (Haus/Baum/?-Block/Bruecke/Saeulen).
|
||||
--once-Regression exit 0.
|
||||
|
||||
**Offen:** Items (ctype 4) einsammeln, Gegner, Duck-Frame-Zuordnung pruefen,
|
||||
Original-HUD-Grafik, Karten-Animationen (KARTE0-9), Levelmusik-Song nach
|
||||
Gehoer, Zeitablauf/Leben-Logik, weitere Level freischalten.
|
||||
|
||||
Reference in New Issue
Block a user