342 lines
10 KiB
Markdown
342 lines
10 KiB
Markdown
# Changelog - Mario Runner
|
||
|
||
## Version 2.2 - Système de Vies & Coffre Final 🏆❤️
|
||
|
||
### 🎮 NOUVEAU : Système de Vies
|
||
|
||
**Feature majeure** : Ajout d'un système de vies complet avec respawn !
|
||
|
||
- **3 vies au départ** (configurable)
|
||
- **Perte de vie** lors de collisions frontales avec obstacles
|
||
- **Respawn au checkpoint** avec invincibilité temporaire (2s)
|
||
- **Game Over** si toutes les vies sont perdues
|
||
|
||
#### Mécanique des Obstacles Améliorée
|
||
- **Sauter dessus** : Détruit l'obstacle + 50 points bonus + rebond
|
||
- **Collision frontale** : Perte d'une vie (sauf si invincible)
|
||
- Feedback visuel :
|
||
- ⚡ Flash rouge lors de la perte de vie
|
||
- 💚 Explosion verte lors de la destruction
|
||
- 🛡️ Clignotement pendant l'invincibilité
|
||
|
||
#### Système de Checkpoint
|
||
- **Sauvegarde automatique** tous les 1000px
|
||
- ⚡ Flash vert au passage d'un checkpoint
|
||
- Le joueur réapparaît au dernier checkpoint après une mort
|
||
- Invincibilité de 2 secondes après respawn (alpha clignotant)
|
||
|
||
#### Interface Utilisateur
|
||
- ❤️ **Compteur de vies** affiché en haut à gauche
|
||
- 🎁 **Cadeaux collectés** avec progression (X/15)
|
||
- Mise à jour en temps réel
|
||
|
||
### 🏆 NOUVEAU : Coffre au Trésor Final
|
||
|
||
**Récompense ultime** à la fin du niveau !
|
||
|
||
- **Coffre géant** placé sur la plateforme finale (x=7700)
|
||
- **Condition d'ouverture** : Avoir collecté 15 cadeaux minimum
|
||
- **Récompense** : MEGA BONUS de +1000 points !
|
||
|
||
#### Effets Visuels Spectaculaires
|
||
- 🌟 Aura dorée pulsante autour du coffre
|
||
- 💫 Texte flottant "🎁 15 cadeaux requis"
|
||
- ⚡ Flash doré géant à l'ouverture
|
||
- 💥 Explosion de 20 particules dorées
|
||
- 🏆 Message épique "COFFRE OUVERT ! MEGA BONUS +1000"
|
||
|
||
#### Feedback Progressif
|
||
- Message "🏆 Assez de cadeaux! Trouvez le coffre!" dès 15 cadeaux collectés
|
||
- Le compteur 🎁 change de couleur (jaune doré)
|
||
- Indicateur visuel au-dessus du coffre
|
||
|
||
#### Système d'Interaction
|
||
- **Overlap** : Se rapprocher du coffre suffit
|
||
- Vérification automatique du nombre de cadeaux
|
||
- Une seule ouverture possible par partie
|
||
|
||
### 📊 Statistiques de la v2.2
|
||
|
||
```
|
||
Vies de départ : 3
|
||
Invincibilité : 2000ms après respawn
|
||
Checkpoints : Tous les 1000px
|
||
Coffre requis : 15 cadeaux
|
||
Bonus coffre : +1000 points
|
||
```
|
||
|
||
### 🎯 Nouvelles Règles du Jeu
|
||
|
||
#### Gestion des Obstacles
|
||
1. **Sauter dessus (par le haut)** :
|
||
- ✅ Détruit l'obstacle
|
||
- ✅ +50 points
|
||
- ✅ Petit rebond automatique
|
||
- Effet explosion verte
|
||
|
||
2. **Collision (frontale/latérale)** :
|
||
- ❌ Perd une vie
|
||
- ⚡ Flash rouge
|
||
- 🔄 Respawn au checkpoint si vies restantes
|
||
- 💀 Game Over si plus de vies
|
||
|
||
#### Système de Progression
|
||
1. Collecter des cadeaux (+100) et super trésors (+500)
|
||
2. Atteindre 15 cadeaux minimum
|
||
3. Trouver le coffre final (x=7700)
|
||
4. Ouvrir le coffre pour le MEGA BONUS (+1000)
|
||
5. Survivre jusqu'à la fin avec 3 vies maximum
|
||
|
||
#### Score Maximum Possible
|
||
```
|
||
24 cadeaux normaux : 24 × 100 = 2,400 pts
|
||
6 super trésors : 6 × 500 = 3,000 pts
|
||
1 coffre final : 1 × 1000 = 1,000 pts
|
||
Obstacles détruits : ~24 × 50 = 1,200 pts
|
||
─────────────────────────────────────────────
|
||
TOTAL MAXIMUM : 7,600 pts
|
||
```
|
||
|
||
### 🔧 Changements Techniques
|
||
|
||
#### Nouvelles Constantes
|
||
```typescript
|
||
// src/utils/constants.ts
|
||
PLAYER_STARTING_LIVES: 3
|
||
RESPAWN_INVINCIBILITY_TIME: 2000
|
||
CHEST_REQUIRED_GIFTS: 15
|
||
```
|
||
|
||
#### Classe Player.ts - Invincibilité
|
||
```typescript
|
||
private isInvincible: boolean = false;
|
||
private invincibilityTimer?: Phaser.Time.TimerEvent;
|
||
|
||
public makeInvincible(scene: Phaser.Scene): void {
|
||
// Effet de clignotement alpha (0.3 ↔ 1.0)
|
||
// Timer de 2 secondes
|
||
}
|
||
|
||
public getIsInvincible(): boolean {
|
||
// Vérifie l'état d'invincibilité
|
||
}
|
||
```
|
||
|
||
#### Nouvelle Classe TreasureChest.ts
|
||
```typescript
|
||
export class TreasureChest extends Phaser.Physics.Arcade.Sprite {
|
||
private isOpen: boolean = false;
|
||
private requiredGifts: number;
|
||
|
||
public canOpen(giftsCollected: number): boolean
|
||
public open(scene: Phaser.Scene): number
|
||
public getIsOpen(): boolean
|
||
public getRequiredGifts(): number
|
||
}
|
||
```
|
||
|
||
#### GameScene.ts - Nouvelles Fonctions
|
||
```typescript
|
||
private lives: number;
|
||
private giftsCollected: number;
|
||
private lastCheckpointX: number;
|
||
private treasureChest?: TreasureChest;
|
||
|
||
private openChest() // Interaction avec le coffre
|
||
private loseLife() // Gestion perte de vie
|
||
private respawnPlayer() // Téléportation au checkpoint
|
||
private gameOver() // Écran de fin si plus de vies
|
||
```
|
||
|
||
#### Mécanique de Détection de Saut
|
||
```typescript
|
||
private hitObstacle(player: any, obstacle: any): void {
|
||
const isJumpingOn =
|
||
playerBody.velocity.y > 0 &&
|
||
playerBody.bottom <= obstacleBody.top + 10;
|
||
|
||
if (isJumpingOn) {
|
||
// Destruction
|
||
} else {
|
||
if (!player.getIsInvincible()) {
|
||
this.loseLife();
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 🐛 Corrections
|
||
|
||
- ✅ Invincibilité fonctionne correctement après respawn
|
||
- ✅ Checkpoints sauvegardent la position tous les 1000px
|
||
- ✅ Détection précise saut vs collision sur obstacles
|
||
- ✅ UI vies et cadeaux mise à jour en temps réel
|
||
- ✅ Game Over arrête correctement la physique
|
||
|
||
### 💡 Conseils de Jeu
|
||
|
||
1. **Maîtrisez le saut sur obstacles** : Vous gagnez des points au lieu d'en perdre !
|
||
2. **Cherchez tous les cadeaux** : Il en faut 15 pour le coffre final
|
||
3. **Attention aux checkpoints** : Vous réapparaitrez là où vous étiez il y a 1000px
|
||
4. **3 vies seulement** : Soyez prudent, chaque vie compte !
|
||
5. **Invincibilité** : Profitez des 2 secondes après respawn pour passer les zones dangereuses
|
||
6. **Coffre final** : N'oubliez pas d'aller tout au bout (x=7700) pour le mega bonus !
|
||
|
||
---
|
||
|
||
## Version 2.1 - Super Trésors 🌟💰
|
||
|
||
### 🎁 NOUVEAU : Super Trésors
|
||
|
||
**Feature majeure** : Ajout de super trésors ultra précieux !
|
||
|
||
- **6 super trésors** répartis dans le niveau (1 par zone)
|
||
- **+500 points** par collecte (5x plus qu'un cadeau normal !)
|
||
- **Score max total** : 5,400 points (vs 2,400 avant)
|
||
|
||
#### Effets Visuels Spectaculaires
|
||
- 🌟 Rotation rapide + pulsation
|
||
- ⭐ 3 étoiles qui orbitent autour
|
||
- ✨ Effet de brillance scintillant
|
||
- ⚡ Flash doré à la collecte
|
||
- 🎯 Message géant "★ SUPER TRÉSOR +500 ★"
|
||
|
||
#### Placement Stratégique
|
||
- Placés en **hauteur** (nécessite double saut)
|
||
- Difficulté croissante par zone
|
||
- Zone 5 : Ultra difficile (-500px de hauteur)
|
||
- Zone 6 : Sur la plateforme finale
|
||
|
||
#### Classe Technique
|
||
- Nouvelle classe `SuperTreasure` avec animations avancées
|
||
- Taille 1.5x plus grande que les cadeaux
|
||
- Effet de particules avec étoiles orbitales
|
||
- Destruction automatique des timers/tweens
|
||
|
||
Consultez [SUPER_TREASURES.md](SUPER_TREASURES.md) pour le guide complet !
|
||
|
||
---
|
||
|
||
## Version 2.0 - Améliorations Majeures 🚀
|
||
|
||
### 🎮 Gameplay
|
||
|
||
#### Double Saut Implémenté ✨
|
||
- **NOUVEAU** : Le joueur peut maintenant faire un **double saut** !
|
||
- Appuyez deux fois sur Espace (PC) ou le bouton tactile (Mobile)
|
||
- Permet d'atteindre les plateformes les plus hautes
|
||
- Compteur de sauts visible dans la console (debug)
|
||
|
||
#### Saut Amélioré
|
||
- Force de saut augmentée : `-400` → **`-550`**
|
||
- Les plateformes sont maintenant accessibles
|
||
|
||
### 🗺 Niveau Étendu
|
||
|
||
#### Taille du Niveau
|
||
- **Avant** : 3x la largeur de l'écran (~3840px)
|
||
- **MAINTENANT** : **6x la largeur de l'écran (~7680px)**
|
||
- Durée de jeu augmentée significativement
|
||
|
||
#### Plateformes
|
||
- **Avant** : 7 plateformes
|
||
- **MAINTENANT** : **27 plateformes** réparties en 6 zones
|
||
- Zone 1 : Facile (début)
|
||
- Zone 2 : Moyen
|
||
- Zone 3 : Plus difficile
|
||
- Zone 4 : Avancé
|
||
- Zone 5 : Très difficile
|
||
- Zone 6 : Finale (grande plateforme)
|
||
|
||
#### Objets
|
||
|
||
**Cadeaux** :
|
||
- **Avant** : 4 cadeaux
|
||
- **MAINTENANT** : **24 cadeaux** (+500%)
|
||
- Répartis partout sur le niveau
|
||
- Alternance entre sol et hauteur variable
|
||
|
||
**Obstacles** :
|
||
- **Avant** : 3 obstacles
|
||
- **MAINTENANT** : **24 obstacles** (+700%)
|
||
- Répartis régulièrement tous les 300px environ
|
||
|
||
### 📊 Statistiques
|
||
|
||
```
|
||
Niveau : 7680px (6x écran)
|
||
Plateformes : 27 (+286%)
|
||
Cadeaux : 24 (+500%)
|
||
Obstacles : 24 (+700%)
|
||
Force de saut : -550 (+37.5%)
|
||
Sauts max : 2 (NOUVEAU)
|
||
```
|
||
|
||
### 🎯 Difficulté
|
||
|
||
Le jeu est maintenant **beaucoup plus long et varié** :
|
||
- Progression de difficulté graduelle sur 6 zones
|
||
- Nécessite maîtrise du double saut pour les zones avancées
|
||
- Plus de récompenses à collecter
|
||
- Plus de défis à éviter
|
||
|
||
### 🔧 Changements Techniques
|
||
|
||
#### Constantes Modifiées
|
||
```typescript
|
||
// src/utils/constants.ts
|
||
PLAYER_JUMP_VELOCITY: -550 (était -400)
|
||
PLAYER_MAX_JUMPS: 2 (NOUVEAU)
|
||
```
|
||
|
||
#### Modifications Classes
|
||
|
||
**Player.ts** :
|
||
- Ajout du compteur de sauts (`jumpCount`)
|
||
- Logique de double saut implémentée
|
||
- Réinitialisation automatique au sol
|
||
|
||
**GameScene.ts** :
|
||
- Monde physique étendu à 6x
|
||
- 27 plateformes avec progression de difficulté
|
||
- 24 cadeaux répartis intelligemment
|
||
- 24 obstacles stratégiquement placés
|
||
|
||
### 🎮 Comment Jouer
|
||
|
||
#### PC
|
||
- **Déplacements** : ← →
|
||
- **Saut** : Espace
|
||
- **Double Saut** : Appuyez Espace une 2ème fois en l'air !
|
||
|
||
#### Mobile
|
||
- **Déplacements** : Inclinez le téléphone
|
||
- **Saut** : Bouton vert en bas à droite
|
||
- **Double Saut** : Appuyez le bouton une 2ème fois en l'air !
|
||
|
||
### 💡 Astuces
|
||
|
||
1. **Maîtrisez le double saut** : Indispensable pour les plateformes hautes
|
||
2. **Explorez** : Le niveau est 6x plus grand, prenez votre temps
|
||
3. **Collectez tout** : 24 cadeaux = 2400 points potentiels !
|
||
4. **Évitez les obstacles** : 24 obstacles = -1200 points si tous touchés
|
||
5. **Score parfait** : 2400 points (tous les cadeaux, aucun obstacle)
|
||
|
||
### 🐛 Corrections
|
||
|
||
- ✅ Monde physique correctement dimensionné
|
||
- ✅ Joueur ne se bloque plus au bord de l'écran
|
||
- ✅ Double saut fonctionnel et fluide
|
||
- ✅ Collisions optimisées pour le grand niveau
|
||
|
||
---
|
||
|
||
## Version 1.0 - Version Initiale
|
||
|
||
- Jeu de plateforme basique
|
||
- Support PC et Mobile
|
||
- Gyroscope + contrôles tactiles
|
||
- 7 plateformes
|
||
- 4 cadeaux, 3 obstacles
|
||
- Timer de 3 minutes
|