# ✨ Atelier Scratch : Créer et Programmer le Sprite « Effet +1 »
### *Séance Découverte Algorithmics — Jeu « Stika Maa » (ستيكة ماء)*
*Guide pas-à-pas pédagogique illustré (pour enfants de 7 à 12 ans et animateurs)*

---

## 🎯 L'Histoire & Le Rôle du Sprite dans le Jeu

Dans notre jeu **Stika Maa (ستيكة ماء)**, le coureur au maillot de la Tunisie sprinte sur la Corniche de Boujaafar pour récupérer 20 bouteilles d'eau minérale **Hayat (حياة)**.

Lorsqu'il attrape une bouteille en plein vol, son score augmente et un son joyeux **« Pop »** retentit. Mais dans les grands jeux vidéo professionnels, on ne s'arrête pas là !

Il faut une **récompense visuelle magique** : c'est le rôle du sprite **Effet +1 (`EffetPlus1`)** !
C'est un badge doré éclatant orné d'une goutte d'eau bleue et du texte **`+1 💧`**. Dès qu'une bouteille est attrapée, cette bulle dorée jaillit au-dessus de la tête du coureur, monte doucement vers le ciel comme une bulle d'air, puis s'évanouit !

> [!NOTE]
> ### 💡 Le Secret des Game Designers : Le « Game Feel » & Feedback Visuel
> Pourquoi ce petit lutin est-il si important ?
> En programmation de jeux vidéo, on appelle cela le **« Game Juice »** (le jus de jeu) : chaque fois que le joueur réussit une action difficile, son cerveau adore recevoir une récompense sonore ET visuelle immédiate. Cela rend le jeu incroyablement gratifiant, vivant et addictif pour les enfants !

---

## 🛠️ Étape 0 : Comment Importer (Uploader) le Sprite dans Scratch

Voici la méthode détaillée pas-à-pas pour intégrer l'image du sprite dans ton projet Scratch :

### 📥 1. Où trouver l'image de l'effet ?
L'image s'appelle **`effet_plus1.svg`**. Elle se trouve dans le dossier de ton projet :  
👉 `assets_du_jeu/sprites/effet_plus1.svg` (ou directement téléchargeable sur le site web `vp.youspire.tn`).

---

### 🖱️ 2. Comment faire l'Upload dans l'Éditeur Scratch (Pas à Pas) :

1. **Repérer le bouton magique :**
   * Regarde tout en bas à droite de l'écran Scratch, dans la zone où sont rangés tous tes lutins (la zone *Sprites*).
   * Tu vois un gros bouton rond bleu avec une tête de chat blanc et un petit signe `+` (`Choisir un sprite`).

2. **Survoler sans cliquer :**
   * **Attention :** Ne clique pas directement sur le gros bouton rond !  
   * Place simplement le curseur de ta souris dessus : un petit menu vertical de 4 bulles violettes s'ouvre vers le haut.

3. **Cliquer sur « Importer un sprite » :**
   * Monte ta souris tout en haut de ce petit menu vertical.
   * Clique sur la bulle qui contient **une flèche qui pointe vers le haut sortant d'un plateau** (au survol, il est écrit **« Importer un sprite »** ou *« Upload Sprite »* en anglais).

4. **Sélectionner le fichier SVG :**
   * Une fenêtre de ton ordinateur s'ouvre.
   * Navigue vers ton dossier et sélectionne le fichier **`effet_plus1.svg`**, puis clique sur **Ouvrir**.
   * Le badge `+1 💧` apparaît instantanément au milieu de ton jeu !

5. **Renommer proprement le lutin :**
   * Dans la boîte de propriétés du sprite (juste sous la scène de jeu) :
   * Efface le nom par défaut et écris exactement : **`EffetPlus1`** (sans espace pour respecter les bonnes pratiques des programmeurs).

6. **Régler la taille :**
   * Dans la case **Taille**, vérifie qu'elle est bien à **`100`** (ou `80` si tu préfères une bulle plus petite).

7. **Vérifier le costume :**
   * Clique sur l'onglet **Costumes** en haut à gauche pour t'assurer que le badge doré brille bien avec sa goutte d'eau bleue et son texte `+1`.

---

## 🧩 Vue d'Ensemble des 4 Scripts du Sprite Effet +1

Le comportement de ce lutin est très compact, propre et efficace. Il se compose de **4 scripts** :

![Tous les blocs de l'Effet Plus 1](captures_ecran/effet_plus1_scripts_tous.png)

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                            SPRITE « EFFET +1 »                              │
├──────────────────────────────┬──────────────────────────────────────────────┤
│ 1. 🏁 Drapeau vert           │ 4. ✨ Réception BONUS_EFFET                  │
│    └─ Cacher (Inactif)       │    ├─ Aller au-dessus du joueur (x: 0, y: -90│
├──────────────────────────────┤    ├─ Aller à l'avant-plan (Bien visible)    │
│ 2. 💥 Réception GAME OVER    │    ├─ Montrer                                │
│    └─ Cacher                 │    ├─ Répéter 7 fois :                       │
├──────────────────────────────┤    │    ├─ Ajouter 3 à y (Monte doucement)   │
│ 3. 🏆 Réception VICTOIRE     │    │    └─ Attendre 0.04 secondes (Fluidité) │
│    └─ Cacher                 │    └─ Cacher (Disparaît comme une étincelle) │
└──────────────────────────────┴──────────────────────────────────────────────┘
```

---

## 📌 Script 1 : L'Initialisation au Drapeau Vert 🟢

Quand la partie démarre, aucune bouteille n'a encore été ramassée ! La bulle `+1` doit rester totalement invisible.

![Script 1 - Initialisation](captures_ecran/effet_plus1_script_1_init.png)

```scratch
quand le drapeau vert est cliqué
cacher
```

### 🔍 Décorticage Pédagogique Bloc par Bloc :
| Bloc | Catégorie & Couleur | Que fait-il ? | Pourquoi ce bloc est indispensable ? |
| :--- | :--- | :--- | :--- |
| **`quand 🏁 est cliqué`** | 🟡 **Événements** (Jaune) | Coup d'envoi officiel de Scratch. | S'active dès qu'on relance une partie. |
| **`cacher`** | 🟣 **Apparence** (Violet) | Rend le badge invisible. | **Essentiel !** Sans ce bloc, la bulle dorée resterait collée au milieu de la rue dès le lancement du jeu avant même d'avoir attrapé la première bouteille ! |

---

## 📌 Scripts 2 & 3 : La Disparition en Fin de Partie (Game Over & Victoire)

Quand le jeu s'achève, de grands panneaux occupent le centre de l'écran. L'effet `+1` ne doit jamais traîner ou s'afficher par-dessus ces panneaux.

![Script 2 - Game Over](captures_ecran/effet_plus1_script_2_gameover.png)
![Script 3 - Victoire](captures_ecran/effet_plus1_script_3_victoire.png)

### Code du Script 2 :
```scratch
quand je reçois [GAME OVER v]
cacher
```

### Code du Script 3 :
```scratch
quand je reçois [VICTOIRE v]
cacher
```

### 🔍 Décorticage Pédagogique :
| Bloc | Catégorie & Couleur | Que fait-il ? | Pourquoi ce bloc ? |
| :--- | :--- | :--- | :--- |
| **`quand je reçois [GAME OVER / VICTOIRE]`** | 🟡 **Événements** | Écoute radio des signaux de fin. | Réveille le sprite pour nettoyer l'écran lors du coup de sifflet final. |
| **`cacher`** | 🟣 **Apparence** | Masque le lutin. | Garantit une fin de partie propre et nette sans résidus graphiques. |

---

## 📌 Script 4 : L'Animation Flottante de Récompense ✨

C'est le **cœur magique** de ce sprite ! Dès que le lutin `Bouteille` touche le `Joueur`, il crie à la radio `envoyer à tous BONUS_EFFET`. Ce script se réveille alors pour jouer la petite chorégraphie d'étincelle !

![Script 4 - Animation Flottante](captures_ecran/effet_plus1_script_4_bonus.png)

```scratch
quand je reçois [BONUS_EFFET v]
aller à x: (0) y: (-90)
aller à l' [avant v] plan
montrer
répéter (7) fois
    ajouter (3) à y
    attendre (0.04) secondes
cacher
```

### 🔍 Décorticage Pédagogique Bloc par Bloc :
| Bloc | Catégorie & Couleur | Que fait-il ? | Pourquoi ce bloc est indispensable ? |
| :--- | :--- | :--- | :--- |
| **`quand je reçois [BONUS_EFFET]`** | 🟡 **Événements** | Déclencheur radio de récompense. | Connecte la réussite de la Bouteille à l'effet visuel. Les deux sprites communiquent sans se toucher ! |
| **`aller à x: 0 y: -90`** | 🔵 **Mouvement** (Bleu) | Téléporte la bulle à cette position. | Le joueur court à `y = -130`. La coordonnée `y = -90` place la bulle dorée pile au-dessus de sa tête, comme une auréole de victoire ! |
| **`aller à l'avant-plan`** | 🟣 **Apparence** | Place le sprite tout en haut de la pile visuelle. | **Indispensable !** Évite que la bulle ne passe derrière le coureur, les voitures ou le décor. Elle doit briller au premier plan absolu. |
| **`montrer`** | 🟣 **Apparence** | Fait apparaître l'étoile dorée. | Comme le sprite est invisible par défaut, ce bloc le révèle aux yeux de l'enfant au moment exact de la prise. |
| **`répéter (7) fois`** | 🟠 **Contrôle** (Orange) | Boucle d'animation courte. | Fait durer le vol féerique pendant exactement 7 petits pas. |
| **`ajouter (3) à y`** | 🔵 **Mouvement** | Fait monter la bulle de 3 pixels vers le haut. | En mathématiques cartésiennes Scratch, ajouter un nombre positif à l'axe Y fait monter vers le ciel (effet de lévitation / bulle d'air). 7 x 3 = 21 pixels de montée au total ! |
| **`attendre (0.04) secondes`** | 🟠 **Contrôle** | Temporisation ultra-courte. | Donne une cadence cinématographique douce. Sans ce bloc, les 7 pas s'exécuteraient en 1 milliseconde et l'œil ne verrait pas la bulle monter ! Le vol dure au total : $7 \times 0.04 = 0.28$ seconde (un clin d'œil parfait). |
| **`cacher`** | 🟣 **Apparence** | Efface la bulle. | La bulle éclate et s'évapore dans les airs une fois sa mission accomplie, prête pour la prochaine bouteille ! |

---

## 🧪 Le Coin des Petits Scientifiques (Expériences & Défis !)

Voici des expériences amusantes pour tester et personnaliser l'effet visuel :

| Expérience | Ce qu'on modifie dans le Script 4 | Résultat magique à l'écran |
| :--- | :--- | :--- |
| 🚀 **Mode Fusée Spatiale** | Remplace `ajouter (3) à y` par **`ajouter (8) à y`** | La bulle s'envole à toute allure vers les nuages ! |
| 🎈 **Mode Bulle de Savon** | Remplace `attendre 0.04 s` par **`attendre 0.08 s`** | L'effet flotte avec une lenteur poétique et délicate ! |
| 🌟 **Lévitation Géante** | Change `répéter 7 fois` par **`répéter 15 fois`** | La bulle monte deux fois plus haut dans le ciel de Boujaafar ! |
| 🧠 **Défi Ultime Algorithmics : Suivre le Coureur !** | Remplace `aller à x: (0)` par le capteur bleu **`aller à x: (abscisse x de Joueur)`** | **Magique !** La bulle n'apparaît plus au centre, mais s'élève exactement au-dessus de la tête du coureur, où qu'il se trouve sur la corniche ! |

---

## ✅ Fiche Récapitulative de Validation (Checklist pour l'Enfant)

L'élève vérifie chacun des points suivants pour obtenir son badge d'Effets Spéciaux :

- [ ] L'image `effet_plus1.svg` a bien été importée via le menu **« Importer un sprite »**.
- [ ] Le lutin est bien nommé **`EffetPlus1`** et sa taille est fixée à **`100`**.
- [ ] Au clic sur le **Drapeau Vert 🟢**, la bulle dorée reste invisible.
- [ ] Dès que le joueur attrape une bouteille Hayat, le badge **`+1 💧`** jaillit au-dessus de sa tête.
- [ ] La bulle s'élève doucement vers le haut puis disparaît toute seule comme une étincelle.
- [ ] En cas de **Game Over** ou de **Victoire**, le sprite ne gêne pas l'écran final.

🎉 **Mabrouk ! Tu as apporté la touche professionnelle de « Game Juice » qui fait briller « Stika Maa » !**
