Panneau scène simplifié + boîte de collision + rôle joueur/ennemi/pnj
Build and deploy / test-python (push) Successful in 11m52s
Build and deploy / test-js (push) Successful in 56s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped

Trois retours utilisateur sur l'éditeur de scène 2D :

- Retire l'arborescence "Objets de cette scène" (un objet reste
  sélectionnable en cliquant dessus sur le canevas) et le bouton
  "+ Ajouter un décor" (le type "decor" reste supporté côté serveur,
  juste plus accessible depuis ce menu).

- Chaque objet de scène a désormais une boîte de collision AUTOMATIQUE
  (= sa propre boîte, comportement inchangé pour une condition de
  collision déjà posée) réglable dans un nouveau panneau "🧱 Collision" :
  activée/désactivée, forme (rectangle/cercle), taille et décalage —
  utile pour un sprite très paddé (CraftPix) dont la silhouette réelle
  est bien plus petite que son canevas. elementsOverlap() (conditions.js)
  applique ces réglages en restant identique par défaut.

- Nouveau champ "🏷️ Rôle" (Joueur/Ennemi/PNJ) sur un personnage : SEUL un
  personnage "Joueur" est désormais déplacé/animé au clavier et suivi
  par la caméra (personnage-controller.js) — "Ennemi"/"PNJ" restent
  immobiles tant qu'aucune logique de flow ne les pilote (déplacement
  ennemi automatique/apparition, dialogue de PNJ... hors scope de ce
  réglage, qui ne fait qu'identifier "quel objet est le joueur").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-02 15:30:34 +02:00
co-authored by Claude Sonnet 5
parent 9199897784
commit bc3feb5080
19 changed files with 602 additions and 49 deletions
+11 -6
View File
@@ -613,12 +613,17 @@ body.builderBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; d
.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; }
é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). Insensible au clic
SEULEMENT au jeu (.playScreen .sceneBackground, peut couvrir tout le
"monde", ne doit jamais intercepter un clic destiné à un objet posé
par-dessus) — JAMAIS dans l'éditeur (.canvasElement, scene_edit.html) :
sans arborescence "Objets de cette scène" pour le sélectionner
autrement, un fond y resterait impossible à re-sélectionner/déplacer
au clic si on le rendait, lui aussi, insensible au clic. */
.sceneBackground{ object-fit:fill; }
.playScreen .sceneBackground{ pointer-events:none; }
/* Caméra qui suit le personnage (voir static/js/play/personnage-
controller.js) : .playScreen.playScene est désormais le VIEWPORT (taille