{% extends "base.html" %} {% block title %}{{ screen.name }} — {{ game.name }}{% endblock %} {% block content_class %}content-builder{% endblock %} {% block body_class %}builderBody{% endblock %} {% block extra_head %} {% endblock %} {% block content %}

🎮 Jeu 2D — scène à taille fixe ({{ screen.scene_width }}×{{ screen.scene_height }} px).

{% set obj = objects|selectattr("id", "equalto", selected_id)|first if selected_id else none %}
⋮⋮ Objets de cette scène
▶️ Jouer depuis le début

Objets de cette scène

{% if objects %} {% else %}

Aucun objet pour l'instant.

{% endif %}
🎭 Personnages
{% for slug_c, character in sprite_library_families %} {% endfor %}

Personnage Kenney (licence libre CC0) ou animal Forge, avec toutes ses animations — les variantes de couleur d'un animal se choisissent depuis le panneau de propriétés.

{% if background_library %}
🏞️ Images de fond
{% for slug_b, background in background_library.items() %} {% endfor %}

Posée à sa taille réelle (souvent plus grande que la scène) — un seul fond par scène recommandé, la caméra le suit en défilant.

{% endif %}
{% for o in objects %}
{{ o.rendered_html|safe }}
{% endfor %}

Glisse pour déplacer, tire le coin pour redimensionner, clique pour sélectionner. Positions en pixels (scène à taille fixe).

Blocs de logique

{% if blocks_view %} {% for b in blocks_view %}
{% endfor %}
{% for b in blocks_view %} {% endfor %}
NomDescriptionObjets concernésNœuds
{{ b.name }} {{ b.description|truncatesentences(3) }} {% if b.element_labels %}{{ b.element_labels|join(', ') }}{% else %}—{% endif %} {{ b.node_count }}
{% else %}

Aucun bloc pour l'instant — crée le premier ci-dessus, puis ouvre-le pour poser des déclencheurs/conditions/actions.

{% endif %}

Événements personnalisés

{% if custom_events %} {% for ev in custom_events %}
{% endfor %}
{% for ev in custom_events %} {% endfor %}
NomDescriptionUtilisé par
{{ ev.name }} {% set usages = custom_event_usages.get(ev.id, []) %} {% if usages %} {% for u in usages %} {{ '🔔' if u.role == 'ecoute' else '📣' }} {{ u.screen_name }}{{ ' (modèle)' if u.is_template else '' }}{{ ', ' if not loop.last else '' }} {% endfor %} {% else %} Inutilisé {% endif %}
{% else %}

Aucun événement pour l'instant — crée le premier ci-dessus, puis pose un nœud "Sur un événement personnalisé" (Déclencheur) ou "Déclencher un événement" (Action) dans la Logique de la scène.

{% endif %}
⋮⋮ Propriétés
{% if not selected_id or not obj %}
Sélectionne un objet (sur la scène ou dans la liste) pour voir et modifier ses propriétés ici.
{% else %}

{{ '🏃' if obj.kind == 'personnage' else '🖼️' }} {{ obj.name or ('Personnage' if obj.kind == 'personnage' else 'Décor') }}

Position & taille (pixels)
{% if obj.kind == 'personnage' %}
🎭 Personnage

Personnage Forge — clique un autre pour en changer.

{% for slug_c, character in sprite_library_families %} {% endfor %}
{% set current_character = sprite_library.get(personnage_data.forge_character) %} {% if current_character and current_character.get('family') %}

Variantes de {{ current_character.family_label }} :

{% for slug_c, character in sprite_library.items() if character.get('family') == current_character.family %} {% endfor %}
{% endif %}
🕹️ Commandes

Ce personnage se déplace et s'anime automatiquement avec ces touches, sans rien à poser dans la logique. Clique un champ puis appuie sur la touche voulue.

{% endif %} {% endif %}
{% endblock %}