Initial commit
This commit is contained in:
87
skills/sound-effect-manager/SKILL.md
Normal file
87
skills/sound-effect-manager/SKILL.md
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
name: managing-sound-effects
|
||||
description: Manages sound effects and audio for user feedback (correct/wrong sounds, music, volume). Use when adding new sounds or managing audio
|
||||
allowed-tools: Read, Write, Grep, Glob, Bash
|
||||
---
|
||||
|
||||
# Sound Effect Manager
|
||||
|
||||
Gère effets sonores et feedback audio pour meilleure expérience utilisateur.
|
||||
|
||||
## Quand utiliser
|
||||
|
||||
- Ajout de nouveaux effets sonores
|
||||
- Gestion du volume et mute
|
||||
- Musique de fond pour jeux
|
||||
- Feedback audio utilisateur
|
||||
- Optimisation chargement audio
|
||||
|
||||
## AudioManager (js/core/audio.js)
|
||||
|
||||
**API :**
|
||||
|
||||
- `playSound(soundName, options)` - Jouer son
|
||||
- `setVolume(volume)` - Volume global (0.0-1.0)
|
||||
- `toggleMute()` / `isMuted()` - Mute control
|
||||
|
||||
**Sons disponibles (examine audio.js) :**
|
||||
correct, wrong, victory, click, coin, levelup
|
||||
|
||||
## Ajouter un nouveau son
|
||||
|
||||
1. **Compresser :** < 50 KB (96 kbps pour effets, 128 kbps musique)
|
||||
2. **Formats :** MP3, OGG, WebM (fallback)
|
||||
3. **Placer :** assets/sounds/
|
||||
4. **Enregistrer :** SOUND_CATALOG dans audio.js
|
||||
5. **Utiliser :**
|
||||
```javascript
|
||||
import { playSound } from './core/audio.js';
|
||||
playSound('yourSound');
|
||||
```
|
||||
|
||||
## Patterns essentiels
|
||||
|
||||
- **Préchargement :** Sons critiques avant utilisation
|
||||
- **Pool audio :** Instances multiples pour chevauchement
|
||||
- **Musique fond :** Volume 0.3, loop activé, cleanup dans destroy
|
||||
- **Mobile :** Autoplay nécessite interaction utilisateur
|
||||
- **Accessibilité :** Respecter prefers-reduced-motion
|
||||
|
||||
## Gestion du lifecycle
|
||||
|
||||
**Mode avec musique :**
|
||||
|
||||
```javascript
|
||||
// Lancer musique
|
||||
playSound('background-music', { loop: true, volume: 0.3 });
|
||||
|
||||
// cleanup() → stopper musique
|
||||
```
|
||||
|
||||
Examine QuizMode/ChallengeMode pour patterns existants.
|
||||
|
||||
## Checklist ajout son
|
||||
|
||||
- [ ] Fichier compressé < 50 KB
|
||||
- [ ] Formats multiples (MP3, OGG, WebM)
|
||||
- [ ] Ajouté au SOUND_CATALOG
|
||||
- [ ] Volume testé
|
||||
- [ ] Mute fonctionne
|
||||
- [ ] Cleanup musique si loop
|
||||
- [ ] Mobile autoplay OK
|
||||
|
||||
## En cas de doute
|
||||
|
||||
**Règles absolues :**
|
||||
|
||||
1. Utiliser audio.js API (jamais créer Audio directement)
|
||||
2. < 50 KB par fichier
|
||||
3. Stopper musique dans cleanup()
|
||||
4. Pas d'autoplay sans interaction utilisateur
|
||||
5. Volume par défaut ≤ 0.7
|
||||
|
||||
**Référence :**
|
||||
|
||||
- `js/core/audio.js` - API complète
|
||||
- `assets/sounds/` - Catalogues existants
|
||||
- Modes (QuizMode, ChallengeMode) - Exemples d'utilisation
|
||||
Reference in New Issue
Block a user