Image de fond de scène + caméra qui suit le personnage, fps d'animation cohérent
Trois retours utilisateur : - fps d'idle/interagir/touches supplémentaires alignés sur celui de la marche (8 i/s partout, était 4 pour idle — perçu comme "les autres animations sont lentes à côté de la marche"). - Nouveau menu "🏞️ Images de fond" dans "Objets de cette scène" : pose un objet kind="fond" à la taille RÉELLE de l'image choisie (pack CraftPix intégré en galerie, admin seulement — licence, voir core/sprite_gate.py), derrière tout le reste, insensible au clic. - Si ce fond dépasse la scène, elle devient le "monde" : .playScreen. playScene est désormais le viewport (overflow:hidden, taille fixe), .sceneWorld le monde à l'intérieur — la caméra centre le premier personnage trouvé, bornée pour ne jamais montrer au-delà des bords (voir personnage-controller.js::forgeUpdateSceneCamera). Le personnage peut désormais se déplacer sur tout le monde, pas seulement le petit cadre visible (clampSceneObjectPosition, actions.js). Un jeu sans fond XXL garde un comportement strictement identique à avant (monde == scène, transform vide). Bibliothèque générée une fois par scripts/generate_background_manifest.py (assets/background/, non versionné, licence CraftPix) vers static/backgrounds/ (committé), même patron que generate_animal_sprite_manifest.py. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
5891c82c62
commit
9199897784
@@ -612,6 +612,24 @@ body.builderBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; d
|
||||
remplirait quand même sa boîte (width/height:100%) mais DÉFORMÉE. */
|
||||
.sceneObjectSprite{ object-fit:contain; }
|
||||
|
||||
/* Objet de scène kind="fond" (image de fond, voir add_scene_object.py) :
|
||||
insensible au clic (peut couvrir tout le "monde", ne doit jamais
|
||||
intercepter un clic destiné à un objet posé par-dessus) et étirée pour
|
||||
remplir exactement sa boîte (jamais "contain"/lettrboxée comme
|
||||
.sceneObjectSprite ci-dessus : un fond redimensionné doit combler tout
|
||||
l'espace, pas laisser des bandes vides). */
|
||||
.sceneBackground{ pointer-events:none; object-fit:fill; }
|
||||
|
||||
/* Caméra qui suit le personnage (voir static/js/play/personnage-
|
||||
controller.js) : .playScreen.playScene est désormais le VIEWPORT (taille
|
||||
fixe scene_width x scene_height, jamais plus grand — overflow:hidden
|
||||
coupe tout ce qui dépasse), .sceneWorld le "monde" à l'intérieur, dont
|
||||
la taille par défaut (100%) reste identique au viewport tant qu'aucun
|
||||
fond plus grand que la scène n'est posé — un jeu sans fond XXL se
|
||||
comporte donc exactement comme avant. */
|
||||
.playScreen.playScene{ overflow:hidden; }
|
||||
.sceneWorld{ position:relative; width:100%; height:100%; }
|
||||
|
||||
/* Surbrillance de l'élément sélectionné dans l'arborescence, posée en JS sur
|
||||
sa propre balise (voir applySelectionHighlight) — seul moyen de la voir
|
||||
sur le canevas quand cet élément est imbriqué dans un conteneur/répéteur/
|
||||
|
||||
Reference in New Issue
Block a user