145 lines
4.3 KiB
Markdown
145 lines
4.3 KiB
Markdown
# 🎮 Neon Ping-Pong Game
|
|
|
|
Nowoczesna gra ping-pong z neonowym stylem, zaprojektowana do obsługi setek tysięcy graczy.
|
|
|
|
## 📁 Struktura Projektu
|
|
|
|
```
|
|
ping-pong/
|
|
├── index.php # Główny plik HTML + PHP
|
|
├── sounds/ # Pliki dźwiękowe
|
|
│ ├── 1.mp3 # Dźwięk zderzenia #1
|
|
│ ├── 2.mp3 # Dźwięk zderzenia #2
|
|
│ ├── 3.mp3 # Dźwięk zderzenia #3
|
|
│ ├── 4.mp3 # Dźwięk zderzenia #4
|
|
│ ├── 5.mp3 # Dźwięk zderzenia #5
|
|
│ ├── won.mp3 # Dźwięk wygranej
|
|
│ └── gameOver.mp3 # Dźwięk przegranej
|
|
└── js/ # Moduły JavaScript
|
|
├── game.js # Główna logika gry
|
|
├── bot-ai.js # AI bota (3 poziomy trudności)
|
|
├── audio-manager.js # Zarządzanie dźwiękami
|
|
└── ui-manager.js # Zarządzanie interfejsem
|
|
```
|
|
|
|
## 🎯 Funkcje
|
|
|
|
### Dostępne:
|
|
- ✅ **Tryb Bot - Łatwy**: Graj przeciwko AI na łatwym poziomie
|
|
- ✅ **Neonowy design**: Ciemny motyw z efektami świetlnymi
|
|
- ✅ **System punktacji**: Pierwsza strona do 10 punktów wygrywa
|
|
- ✅ **Efekty dźwiękowe**: Losowe dźwięki przy zderzeniach
|
|
- ✅ **Płynne animacje**: Nowoczesny wygląd i odczucia
|
|
|
|
### W przygotowaniu:
|
|
- 🚧 **Tryb Online**: Graj przeciwko innym graczom przez internet
|
|
- 🚧 **Tryb Bot - Średni**: AI na średnim poziomie trudności
|
|
- 🚧 **Tryb Bot - Trudny**: AI na trudnym poziomie trudności
|
|
|
|
## 🔧 Architektura Modułowa
|
|
|
|
### `game.js` - Główna Logika Gry
|
|
```javascript
|
|
class PingPongGame {
|
|
- Zarządza główną pętlą gry
|
|
- Obsługuje kolizje i fizykę
|
|
- Renderuje elementy gry (paletki, piłka, siatka)
|
|
- Śledzi wynik
|
|
}
|
|
```
|
|
|
|
### `bot-ai.js` - Sztuczna Inteligencja
|
|
```javascript
|
|
class BotAI {
|
|
- 3 poziomy trudności (easy, medium, hard)
|
|
- Predykcja ruchu piłki (dla wyższych poziomów)
|
|
- Konfigurowalna prędkość i accuracy
|
|
- Opóźnienie reakcji dla realizmu
|
|
}
|
|
```
|
|
|
|
### `audio-manager.js` - Menedżer Dźwięków
|
|
```javascript
|
|
class AudioManager {
|
|
- Odtwarzanie losowych dźwięków zderzeń
|
|
- Dźwięki wygranej/przegranej
|
|
- Kontrola głośności (efekty/muzyka)
|
|
- Cache audio dla lepszej wydajności
|
|
}
|
|
```
|
|
|
|
### `ui-manager.js` - Menedżer Interfejsu
|
|
```javascript
|
|
class UIManager {
|
|
- Zarządzanie menu (główne, wybór trudności)
|
|
- Modalne okna (wygrana, przegrana, "w przygotowaniu")
|
|
- Aktualizacja wyniku
|
|
- Przełączanie widoków
|
|
}
|
|
```
|
|
|
|
## 🎮 Sterowanie
|
|
|
|
- **W** lub **Strzałka w górę**: Ruch paletki w górę
|
|
- **S** lub **Strzałka w dół**: Ruch paletki w dół
|
|
|
|
## 🚀 Skalowalność
|
|
|
|
Struktura jest przygotowana na:
|
|
- **Tryb online**: Dodaj moduł `network-manager.js` do obsługi WebSocket
|
|
- **Ranking**: Dodaj moduł `leaderboard.js` do śledzenia najlepszych wyników
|
|
- **Więcej poziomów trudności**: Łatwa konfiguracja w `bot-ai.js`
|
|
- **Power-upy**: Dodaj moduł `powerups.js` dla dodatkowych funkcji
|
|
- **Tournamnety**: System turniejów dla wielu graczy
|
|
|
|
## 📝 Dodawanie Nowych Funkcji
|
|
|
|
### Dodanie nowego poziomu trudności bota:
|
|
```javascript
|
|
// W bot-ai.js
|
|
botAI.setCustomDifficulty('expert', {
|
|
speed: 9,
|
|
reactionDelay: 2,
|
|
accuracy: 0.98,
|
|
predictionEnabled: true,
|
|
predictionStrength: 0.95
|
|
});
|
|
```
|
|
|
|
### Dodanie nowego dźwięku:
|
|
```javascript
|
|
// W audio-manager.js
|
|
audioManager.playSound('newSound.mp3', 0.5);
|
|
```
|
|
|
|
## 🔊 Instalacja Dźwięków
|
|
|
|
Dodaj następujące pliki do folderu `sounds/`:
|
|
1. `1.mp3` - `5.mp3`: Krótkie dźwięki zderzeń (0.1-0.3s)
|
|
2. `won.mp3`: Dźwięk wygranej (~2-3s)
|
|
3. `gameOver.mp3`: Dźwięk przegranej (~2-3s)
|
|
|
|
## 🌐 Przyszły Tryb Online
|
|
|
|
Struktura przygotowana na implementację:
|
|
```javascript
|
|
// Przyszły network-manager.js
|
|
class NetworkManager {
|
|
- WebSocket połączenie z serwerem
|
|
- Synchronizacja stanu gry
|
|
- Matchmaking
|
|
- Chat między graczami
|
|
}
|
|
```
|
|
|
|
## 💡 Performance
|
|
|
|
- Modułowa architektura = łatwiejsze debugowanie
|
|
- Separacja logiki = lepsze cache przeglądarki
|
|
- Gotowe na load balancing dla trybu online
|
|
- Optymalizacja dla wielu równoczesnych sesji
|
|
|
|
## 📞 Kontakt
|
|
|
|
kontakt: wspolpraca@togethere.cloud
|