Ajoute une nouvelle action de flow "jouer_animation_sprite" qui joue une
séquence de PNG sur un élément image (cycle en boucle type marche, ou
une fois type saut) — réutilise target_element_id (déjà whitelisté) et
data_value en JSON {frames, fps, loop}, exactement le patron déjà établi
par "jouer_son" (Phase 6) et "alea" (Phase 2) : aucune nouvelle colonne,
aucune migration de schéma.
Ajoute une propriété d'élément "orientation" (Modifier un élément) pour
retourner un personnage en miroir (gauche/droite/bascule) sans nécessiter
une 2e feuille de sprites "vue de dos" — même patron que "surbrillance"/
"désactivé".
Étend aussi la Timeline d'animation existante (kind="sprite", aux côtés
de "animate_css"/"custom") pour qu'un personnage puisse animer tout seul
dès l'affichage de l'écran (ex. idle en boucle perpétuelle), pas
seulement en réaction à un événement — réutilise la colonne générique
custom_keyframes (JSON) et le réglage iteration_count déjà là pour la
boucle, aucune migration non plus. Les deux entrées (action de flow et
clip de timeline) partagent le même moteur côté client
(runSpriteAnimation()/activeSpriteAnimations dans static/js/play/
actions.js, indexé par nœud DOM plutôt que par id d'élément pour
supporter plusieurs instances d'un même écran-modèle animées
indépendamment).
Une bibliothèque de sprites Forge (2 personnages Kenney CC0, sous-
ensemble curé idle/marche/saut copié dans static/characters/) est
proposée dans l'éditeur, mais un créateur peut tout aussi bien utiliser
ses propres sprites uploadés (même route d'upload générique que le son
de la Phase 6).
Périmètre volontairement limité à ce qui a été demandé : pas d'avatar
modulable en couches (assemblage cheveux/haut/bas par le joueur),
écarté du plan initial à la demande de l'utilisateur.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
# ---------- Bibliothèque de sprites bundlée avec Forge (Phase 7) ----------
|
|
#
|
|
# Sous-ensemble curé (idle/marche/saut, pas les packs complets HD/Parts/
|
|
# Tilesheet/Vector — inutiles pour un jeu 2D web) des personnages "Toon
|
|
# Characters" de Kenney (CC0, voir static/characters/LICENSE-kenney.txt),
|
|
# copiés dans static/characters/<slug>/*.png. Un créateur qui veut ses
|
|
# propres sprites n'utilise pas ce catalogue : il uploade ses images (voir
|
|
# routes/uploads/upload_file.py) et colle leurs URLs directement dans la
|
|
# même zone de frames — voir #nf-action-sprite-fields dans
|
|
# screen_edit.html.
|
|
SPRITE_LIBRARY = {
|
|
"male-adventurer": {
|
|
"label": "Aventurier",
|
|
"animations": {
|
|
"idle": ["/static/characters/male-adventurer/idle.png"],
|
|
"marche": [f"/static/characters/male-adventurer/walk{i}.png" for i in range(8)],
|
|
"saut": ["/static/characters/male-adventurer/jump.png"],
|
|
},
|
|
},
|
|
"zombie": {
|
|
"label": "Zombie",
|
|
"animations": {
|
|
"idle": ["/static/characters/zombie/idle.png"],
|
|
"marche": [f"/static/characters/zombie/walk{i}.png" for i in range(8)],
|
|
"saut": ["/static/characters/zombie/jump.png"],
|
|
},
|
|
},
|
|
}
|