# ---------- Bibliothèque de sprites bundlée avec Forge (Phase 7/8) ---------- # # Les 6 personnages "Toon Characters" de Kenney (CC0, voir # static/characters/LICENSE-kenney.txt), copiés intégralement (toutes leurs # poses) dans static/characters//*.png depuis # assets/characters/kenney_toon-characters/ (pack source, non versionné — # seul ce sous-ensemble copié l'est). Un créateur qui veut ses propres # sprites n'utilise pas ce catalogue — cette possibilité est retirée pour # le moment (voir historique du plan), seuls ces personnages Forge sont # disponibles. CHARACTERS = { "male-adventurer": "Aventurier", "female-adventurer": "Aventurière", "male-person": "Personnage (homme)", "female-person": "Personnage (femme)", "robot": "Robot", "zombie": "Zombie", } # Regroupement des poses individuelles en animations nommées : les poses # numérotées (ex. walk0..walk7) forment un cycle à plusieurs images, les # autres sont des poses figées à une seule image. Mêmes noms de fichiers # pour les 6 personnages (confirmé sur disque), donc une seule définition # suffit pour tous. _SEQUENCE_ANIMATIONS = { "walk": 8, # cycle de marche "run": 3, # course "attack": 3, # attaque "cheer": 2, # acclamation "climb": 2, # escalade "switch": 2, # bascule/actionner } _SINGLE_POSES = [ "idle", "jump", "fall", "duck", "hit", "back", "slide", "interact", "kick", "side", "shove", "shoveBack", "talk", "attackKick", "hang", "hold", "hurt", "behindBack", "down", "drag", "fallDown", "rope", "show", "think", "wide", ] def _animations_for(slug): animations = { name: [f"/static/characters/{slug}/{name}{i}.png" for i in range(count)] for name, count in _SEQUENCE_ANIMATIONS.items() } for name in _SINGLE_POSES: animations[name] = [f"/static/characters/{slug}/{name}.png"] return animations SPRITE_LIBRARY = { slug: {"label": label, "animations": _animations_for(slug)} for slug, label in CHARACTERS.items() }