# 🚀 Guide de Démarrage Rapide

## ✅ Ce qui est déjà fait

Votre jeu Mario Runner est **entièrement fonctionnel** avec :

### ✨ Fonctionnalités Complètes

- ✅ **Version PC** : Contrôles clavier (Flèches + Espace)
- ✅ **Version Mobile** : Gyroscope + Bouton tactile
- ✅ Détection automatique PC/Mobile
- ✅ Physique complète (gravité, sauts, collisions)
- ✅ Plateformes (sol + 7 plateformes en l'air)
- ✅ Obstacles (collision → perte points)
- ✅ Cadeaux (collecte → gain points)
- ✅ Système de score
- ✅ Timer 3 minutes avec fin de partie
- ✅ Caméra qui suit le joueur
- ✅ Background avec effet parallaxe
- ✅ Niveau étendu (3x largeur écran)
- ✅ Menu avec demande permission gyroscope iOS
- ✅ PWA configuré

## 🎮 Tester Maintenant

### Sur PC (Développement)

Le serveur est **déjà lancé** sur :
- **Local** : http://localhost:3001/
- **Réseau** : http://10.0.1.97:3001/ (pour tester depuis mobile sur WiFi)

**Contrôles PC** :
- `←` `→` : Déplacer
- `Espace` ou `↑` : Sauter

### Sur Mobile

1. **Sur le même WiFi** :
   - Ouvrez http://10.0.1.97:3001/ sur votre mobile
   - ⚠️ **Note** : Le gyroscope ne fonctionnera pas en HTTP (iOS)

2. **Avec HTTPS (pour gyroscope iOS)** :
   ```bash
   # Installez ngrok
   npm install -g ngrok

   # Dans un nouveau terminal
   ngrok http 3001

   # Utilisez l'URL HTTPS donnée (ex: https://xyz.ngrok.io)
   ```

**Contrôles Mobile** :
- Inclinez le téléphone : Déplacer
- Bouton vert (bas droite) : Sauter

## 📂 Structure du Projet

```
mario/
├── src/
│   ├── main.ts              # Point d'entrée
│   ├── game.ts              # Config Phaser
│   ├── scenes/              # Scènes du jeu
│   │   ├── BootScene.ts     # Chargement
│   │   ├── MenuScene.ts     # Menu + permission gyro
│   │   └── GameScene.ts     # Jeu principal ⭐
│   ├── controls/            # Contrôles
│   │   ├── GyroControl.ts   # Gyroscope iOS/Android
│   │   └── JumpButton.ts    # Bouton tactile
│   ├── entities/            # Entités du jeu
│   │   ├── Player.ts        # Joueur
│   │   ├── Obstacle.ts      # Obstacles
│   │   └── Gift.ts          # Cadeaux
│   └── utils/
│       └── constants.ts     # Constantes ⚙️
├── public/
│   ├── assets/
│   │   └── sprites/
│   │       └── SPRITE_WORKFLOW.md  # Guide création sprites
│   ├── icons/               # Icônes PWA (à créer)
│   └── manifest.json        # Config PWA
├── DEVELOPMENT_GUIDE.md     # Guide développement complet
├── DEPLOY.md                # Guide déploiement
└── README.md                # Documentation
```

## 🎨 Prochaines Étapes (Personnalisation)

### 1. Créer les Sprites du Personnage

📖 Consultez `public/assets/sprites/SPRITE_WORKFLOW.md`

**Résumé** :
1. Détourer la photo du neveu (GIMP, remove.bg)
2. Créer animations avec Piskel ou Aseprite
3. Placer dans `public/assets/sprites/player_spritesheet.png`
4. Charger dans `src/scenes/BootScene.ts`

### 2. Ajouter des Sons

```typescript
// Dans BootScene.preload()
this.load.audio('jump', 'assets/audio/jump.mp3');
this.load.audio('collect', 'assets/audio/collect.mp3');
this.load.audio('music', 'assets/audio/background.mp3');

// Dans GameScene
this.sound.play('jump');  // Lors du saut
this.sound.play('collect');  // Lors de collecte
```

### 3. Créer Plus de Niveaux

Utilisez **Tiled** (mapeditor.org) :
1. Créer un tilemap
2. Exporter en JSON
3. Charger dans Phaser

### 4. Créer les Icônes PWA

Générez sur https://pwabuilder.com/imageGenerator
- 192x192 → `public/icons/icon-192.png`
- 512x512 → `public/icons/icon-512.png`

### 5. Déployer en Ligne

📖 Consultez `DEPLOY.md`

**Méthode rapide (Netlify)** :
```bash
npm run build
npx netlify-cli deploy --prod --dir=dist
```

## 🔧 Personnalisation Rapide

### Changer la Difficulté

Éditez `src/utils/constants.ts` :

```typescript
// Plus facile
export const PLAYER_JUMP_VELOCITY = -500;  // Sauts plus hauts
export const PLAYER_MAX_SPEED = 250;       // Plus lent
export const LEVEL_DURATION = 240;         // 4 minutes

// Plus difficile
export const PLAYER_JUMP_VELOCITY = -350;  // Sauts plus bas
export const PLAYER_MAX_SPEED = 350;       // Plus rapide
export const LEVEL_DURATION = 120;         // 2 minutes
```

### Ajuster le Gyroscope

```typescript
export const GYRO_DEADZONE = 10;      // Zone morte plus grande
export const GYRO_MAX_TILT = 20;      // Moins de tilt nécessaire
export const GYRO_SENSITIVITY = 15;   // Plus sensible
```

### Ajouter des Obstacles

Dans `GameScene.ts`, méthode `spawnTestObjects()` :

```typescript
// Ajouter plus d'obstacles
[400, 800, 1200, 1500, 2200, 2800].forEach((x) => {
    const obstacle = this.add.rectangle(x, height - 80, 40, 60, 0xF44336);
    this.physics.add.existing(obstacle);
    this.obstacles!.add(obstacle);
});
```

## 📚 Commandes Utiles

```bash
# Développement (avec hot reload)
npm run dev

# Build de production
npm run build

# Prévisualiser le build
npm run preview

# Lancer sur mobile avec HTTPS
ngrok http 3001  # (après npm run dev)
```

## 🐛 Dépannage

### Le jeu ne démarre pas

```bash
# Réinstaller les dépendances
rm -rf node_modules
npm install
npm run dev
```

### Erreurs TypeScript

```bash
# Rebuild complet
npm run build
```

### Le gyroscope ne fonctionne pas

- ✅ Vérifiez que vous utilisez **HTTPS** (iOS requis)
- ✅ Vérifiez que la permission a été accordée dans le menu
- ✅ Testez sur un **vrai appareil** (pas simulateur)

### Le jeu est trop rapide/lent

Ajustez dans `src/utils/constants.ts` :
- `PLAYER_MAX_SPEED`
- `PLAYER_ACCELERATION`
- `GYRO_SENSITIVITY`

## 🎯 Objectifs de Gameplay

**But actuel** :
- Survivre 3 minutes
- Collecter un maximum de cadeaux (jaunes) = +100 pts
- Éviter les obstacles (rouges) = -50 pts

**Idées d'amélioration** :
- [ ] Système de vies (3 vies, game over si 0)
- [ ] Power-ups (invincibilité, double saut, vitesse)
- [ ] Ennemis mobiles
- [ ] Checkpoints
- [ ] Multiple niveaux avec progression
- [ ] Leaderboard avec LocalStorage

## 💡 Astuces

1. **Mode Debug** : Activez dans `src/game.ts` :
   ```typescript
   arcade: {
       debug: true,  // Voir les hitboxes
   }
   ```

2. **Test Rapide Mobile** :
   - Utilisez Chrome DevTools → Toggle Device Toolbar (F12)
   - Simulez gyroscope : Sensors tab

3. **Performance** :
   - Le jeu cible 60 FPS
   - Testé sur mobile moderne
   - Optimisé avec pooling d'objets (à venir)

## 🎊 C'est Parti !

Votre jeu est **100% fonctionnel** !

Testez-le maintenant sur http://localhost:3001/

Prochaine étape recommandée : **Créer les sprites du personnage** 🎨

Pour toute question, consultez :
- `DEVELOPMENT_GUIDE.md` - Guide complet
- `DEPLOY.md` - Déploiement
- `public/assets/sprites/SPRITE_WORKFLOW.md` - Création sprites

**Bon développement ! 🚀**
