Ein moderner Pac-Man-Klon mit Neon-Grafik, entwickelt mit Phaser 3 und TypeScript.
- 8 Level mit steigendem Schwierigkeitsgrad
- 5 verschiedene Maze-Layouts fรผr Abwechslung
- 4 Geister mit einzigartigen KI-Persรถnlichkeiten:
- ๐ด Blinky - Verfolgt direkt
- ๐ฉท Pinky - Lauert voraus
- ๐ฉต Inky - Komplexe Flankenmanรถver
- ๐ Clyde - Schรผchtern (wechselt zwischen Jagd und Flucht)
- Modernes Neon-Design mit glatten Animationen
- Responsive Design fรผr Desktop und Mobile
- Touch-Steuerung mit Swipe-Gesten
- Highscore-System mit LocalStorage-Persistenz
- Sound-Effekte (stummschaltbar)
- Pause-Funktion
- Node.js 18+
- npm 9+
# Repository klonen
git clone <repository-url>
cd pacman-clone
# Abhรคngigkeiten installieren
npm install
# Entwicklungsserver starten
npm run devDas Spiel ist dann unter http://localhost:5173 erreichbar.
npm run buildDie Build-Dateien werden im dist/ Ordner erstellt.
| Taste | Aktion |
|---|---|
| โ / W | Nach oben |
| โ / S | Nach unten |
| โ / A | Nach links |
| โ / D | Nach rechts |
| ESC | Pause |
| Q | Beenden (im Pause-Menรผ) |
- Swipe in die gewรผnschte Richtung
- Tap zum Starten/Fortsetzen
src/
โโโ audio/ # Audio-System
โ โโโ AudioManager.ts # Sound-Verwaltung
โ โโโ audio-generator.ts
โโโ entities/ # Spielfiguren
โ โโโ PacMan.ts # Pac-Man Entity
โ โโโ Ghost.ts # Geister mit KI
โโโ game/ # Spiellogik
โ โโโ ScoreManager.ts # Punkteverwaltung
โ โโโ LivesManager.ts # Leben-System
โ โโโ LevelManager.ts # Level-Progression
โโโ input/ # Eingabe-System
โ โโโ InputManager.ts # Tastatur & Touch
โโโ maze/ # Labyrinth-System
โ โโโ Maze.ts # Maze-Klasse
โ โโโ maze-loader.ts # Layout-Laden
โ โโโ maze-validation.ts
โ โโโ layouts/ # 5 Maze-Layouts
โโโ persistence/ # Datenpersistenz
โ โโโ serialization.ts
โ โโโ storage.ts # LocalStorage
โโโ responsive/ # Responsive Design
โ โโโ ResponsiveManager.ts
โโโ scenes/ # Phaser Scenes
โ โโโ BootScene.ts # Asset-Loading
โ โโโ MenuScene.ts # Hauptmenรผ
โ โโโ GameScene.ts # Hauptspiel
โ โโโ GameOverScene.ts
โ โโโ WinScene.ts
โโโ types/ # TypeScript Typen
โ โโโ enums.ts # Enumerationen
โ โโโ interfaces.ts # Interfaces
โโโ ui/ # UI-Komponenten
โ โโโ ScoreDisplay.ts
โ โโโ LivesDisplay.ts
โ โโโ LevelIndicator.ts
โ โโโ FrightenedTimer.ts
โโโ main.ts # Einstiegspunkt
Das Projekt verwendet Vitest fรผr Unit-Tests und fast-check fรผr Property-Based-Tests.
# Alle Tests ausfรผhren
npm test
# Tests im Watch-Modus
npm run test:watch
# Coverage-Report
npm run test:coverage- 396 Tests insgesamt
- 24 Test-Dateien
- Unit-Tests und Property-Based-Tests
| Aktion | Punkte |
|---|---|
| Pellet sammeln | 10 |
| Power-Pellet sammeln | 50 |
| 1. Geist fressen | 200 |
| 2. Geist fressen | 400 |
| 3. Geist fressen | 800 |
| 4. Geist fressen | 1600 |
- 7 Fruchtarten: Kirsche (50), Himbeere (100), Pfirsich (150), Apfel (200), Banane (250), Weintrauben (350), Melone (450)
- Zufรคlliges Erscheinen: Pro Level erscheinen zufรคllig 2-7 Frรผchte in Abstรคnden von 15-30 Sekunden.
- Lebensdauer: Jede Frucht hat eine Lebensdauer von 8-12 Sekunden und blinkt, bevor sie verschwindet.
| Level | Geister-Geschwindigkeit | Frightened-Dauer |
|---|---|---|
| 1 | 75 | 6s |
| 2 | 85 | 5s |
| 3 | 95 | 4s |
| 4 | 95 | 3s |
| 5 | 100 | 2s |
| 6 | 100 | 2s |
| 7 | 105 | 1s |
| 8 | 110 | 0.5s |
- Chase - Geister verfolgen Pac-Man
- Scatter - Geister ziehen sich in ihre Ecken zurรผck
- Frightened - Geister fliehen (nach Power-Pellet)
- Eaten - Geister kehren zum Ghost House zurรผck
- Game Engine: Phaser 3
- Sprache: TypeScript
- Build Tool: Vite
- Testing: Vitest + fast-check
- Rendering: Canvas 2D mit Neon-Effekten
Das Projekt folgt einer komponentenbasierten Architektur:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Phaser Game Instance โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ BootScene โ MenuScene โ GameScene โ GameOverScene/WinScene โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Game Scene โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Entity Layer: PacMan, Blinky, Pinky, Inky, Clyde โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Maze Layer: Walls, Pellets, Tunnels, Ghost House โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ UI Layer: Score, Lives, Level, Timer โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Manager Systems: Input, Audio, Score, Level, Responsive โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Composition over Inheritance - Spielobjekte durch Komposition
- State Machine Pattern - Fรผr Geister-KI und Spielzustรคnde
- Event-Driven Communication - Lose Kopplung zwischen Komponenten
- Data-Driven Design - Level-Konfiguration รผber Daten
- Erstelle eine neue Datei in
src/maze/layouts/ - Definiere das Grid mit
CellType-Werten - Exportiere in
src/maze/layouts/index.ts
- Fรผge neuen
GhostTypeinsrc/types/enums.tshinzu - Implementiere Targeting-Logik in
Ghost.ts - Definiere Farbe und Scatter-Ziel
- Audio-Dateien mรผssen manuell in
public/assets/audio/hinzugefรผgt werden - Web Audio API wird fรผr Sound benรถtigt (Fallback auf stumm)
MIT License - siehe LICENSE fรผr Details.
- Inspiriert vom Original Pac-Man (1980) von Namco
- Entwickelt mit Phaser 3
- Icons und Design: Eigene Kreation im Neon-Stil
Viel Spaร beim Spielen! ๐ฎ