Hauptmenue, Optionen, Anleitung, Highscores und Weltkarte implementiert
Per DOSBox-Referenzaufnahmen (Xvfb + XTEST-Tastensimulation) den kompletten
Original-Menuefluss erfasst und nachgebaut:
- ESC am stehenden Titelbild oeffnet das Hauptmenue (Original-Verhalten --
Space/Return tun dort nichts, per Einzeltasten-Sessions verifiziert; das
Original zeigt auch nach 115s passiv keinen Attract-Loop).
- Hauptmenue: HIGHSCORES/ANLEITUNG/OPTIONEN/START/QUIT in roter FON_2-
Schrift, Default-Auswahl START, der selektierte Eintrag BLINKT (so zeigt
das Original den Cursor). PARTY1/PARTY2-Charaktergruppen links/rechts,
Credits-Ticker in gelber FON_1-Schrift unter der Box.
- OPTIONEN: MUSIK EIN/AUS (wirkt auf pygame.mixer.music), EFFEKTE EIN/AUS
(Flag fuer spaeteres Gameplay), EXIT.
- ANLEITUNG: gelbe Texttafel (Original-Joystick-Text auf Tastatur uebertragen).
- HIGHSCORES: Tabelle NAME/SCORE/ITEMS/LEV mit den Original-Defaults.
- START: Weltkarte (KARTE.PCC, kompletter Screen) -- v1 statisch, Taste
zurueck ins Menue; Levelauswahl/Animationen folgen mit dem Gameplay.
- QUIT: Programm-Ende.
Technik (game/menu.py):
- BitmapFont-Parser fuer die Original-Fonts: FON_1/FON_1B (9x7-Zellen,
8px-Vorschub -- nur so passen die 32-Zeichen-Zeilen der Anleitung in die
Box) und FON_2 (16x15-Zellen, 3 Reihen). Outline-Rendering fuer die gelbe
Schrift (Original zeichnet sie ueberall mit schwarzem Rand).
- PARTY-Sprites via make_border_bg_transparent freigestellt (papierweisser
BG wie bei den Rauser-Assets -- ein Schwarz-Replace loescht faelschlich
die Konturen, per Vergleichsrender nachgewiesen und verworfen).
- intro.py: Zustandsautomat Titelbild <-> Menue <-> Weltkarte; wait_for_key
unterscheidet jetzt Fenster-X ('quit') von Taste ('key').
Verifiziert: End-to-End-Lauf des Remakes unter Xvfb mit echten XTEST-Tasten
-- Intro -> ESC -> Menue -> START -> Karte -> zurueck -> Optionen -> Anleitung
-> Highscores -> QUIT beendet sauber (rc=0); alle Screens als Screenshots
gegen die DOSBox-Referenz geprueft. python -m game --once weiterhin exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
949a7eeda2
commit
c8f7d4d990
@@ -15,6 +15,10 @@ werden keine vorab entpackten Assets benötigt.
|
||||
ICO (Tilesets), MAP (Level), TFMX (Musik).
|
||||
- ✅ **Boot-/Intro-Sequenz** spielbar (Rauser → Factor5 → Kellogg's-Logo →
|
||||
Titelbild, mit Fades, Vorhang-Wipe und Musik).
|
||||
- ✅ **Hauptmenü** (HIGHSCORES / ANLEITUNG / OPTIONEN / START / QUIT) mit
|
||||
blinkender Auswahl, Credits-Ticker, Optionsmenü, Anleitungs- und
|
||||
Highscore-Tafel — gegen DOSBox-Referenzaufnahmen nachgebaut.
|
||||
- ✅ **Weltkarte** (statisch; Levelauswahl folgt mit dem Gameplay).
|
||||
- ⏳ **Nächster Meilenstein:** echter Gameplay-Loop — Tony auf Level `W1L0`
|
||||
bewegen (Physik, Kollision, Level-Scrolling). Existiert noch nicht.
|
||||
|
||||
@@ -55,14 +59,17 @@ python3 -m game # Intro; bleibt am Titelbild stehen (Musik loopt)
|
||||
python3 -m game --once # Titelbild nur kurz halten (für Tests/headless)
|
||||
```
|
||||
|
||||
Ablauf: Rauser → Factor5 → Kellogg's → Titelbild-Animation; danach bleibt das
|
||||
fertige Titelbild stehen und die Titelmusik läuft in Schleife, bis eine Taste
|
||||
das Programm beendet.
|
||||
Ablauf (wie im Original): Rauser → Factor5 → Kellogg's → Titelbild-Animation;
|
||||
das fertige Titelbild bleibt stehen (Titelmusik loopt). **ESC/Leertaste**
|
||||
öffnet dort das Hauptmenü — START führt zur Weltkarte, QUIT beendet das
|
||||
Programm, ESC im Menü kehrt zum Titelbild zurück.
|
||||
|
||||
Steuerung:
|
||||
- **Leertaste** — überspringt den aktuellen Intro-Screen (auf dem Titelbild
|
||||
beendet sie das Programm)
|
||||
- **ESC** — beendet das Programm
|
||||
- **Leertaste** — überspringt den aktuellen Intro-Screen; am Titelbild öffnet
|
||||
sie das Hauptmenü
|
||||
- **ESC** — am Titelbild: Hauptmenü öffnen (wie im Original); im Menü: zurück
|
||||
- **Pfeiltasten + Enter** — Menü-Navigation (die Auswahl blinkt, wie im
|
||||
Original)
|
||||
- **Alt+Enter** — zwischen Fenster- und Vollbildmodus umschalten; der Zustand
|
||||
wird in `kelloggs.ini` gemerkt und beim nächsten Start wiederhergestellt
|
||||
(Standard ohne `kelloggs.ini`: Fenstermodus)
|
||||
@@ -81,7 +88,8 @@ KELLOGG_DAT=/pfad/zu/PCKELL.DAT python3 -m game
|
||||
game/ Das eigentliche Spiel (startbar per `python -m game`)
|
||||
formats.py Parser/Decoder für alle Asset-Formate aus PCKELL.DAT
|
||||
audio.py Wrapper um den TFMX-Musik-Renderer (rendert & cached WAVs)
|
||||
intro.py Boot-/Intro-Sequenz
|
||||
intro.py Boot-/Intro-Sequenz + Ablaufsteuerung
|
||||
menu.py Hauptmenü, Optionen, Anleitung, Highscores, Weltkarte
|
||||
tfmx_player/ MIT-lizenzierter C-Renderer für TFMX-Musik
|
||||
original/ Original-DOS-Spieldateien (PCKELL.DAT etc.) — NICHT im Repo
|
||||
tools/ Reine Dev-Werkzeuge (Assets auspacken / als PNG ansehen)
|
||||
|
||||
Reference in New Issue
Block a user