Files
mario/QUICKSTART.md
2025-12-14 11:15:50 +01:00

269 lines
6.9 KiB
Markdown

# 🚀 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 ! 🚀**