Éditeur : le canevas affiche tout le monde (fond agrandi), pas que la scène
Suite au fix du glisser figé à (0,0) : le canevas de l'éditeur restait malgré tout limité à la scène nominale (960×540 par ex.) — la partie d'un "fond" plus grand qui dépasse restait invisible/injoignable à la souris. Le canevas affiche désormais tout le "monde" (max de la scène et de l'étendue de chaque "fond", voir routes/scenes/scene_edit_view.py), comme la caméra en jeu le fait déjà (personnage-controller.js). Nouveau repère visuel "🎥 Champ de la caméra" : un cadre en pointillés marquant où s'arrête la scène nominale à l'intérieur de ce monde agrandi (le reste est assombri), pour que l'auteur voie clairement ce que le joueur verra réellement à l'écran une fois le monde plus grand que le viewport. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
6b4846a646
commit
14ec76dddd
@@ -21,6 +21,24 @@ def render_scene_edit(slug, screen_id, game):
|
||||
objects = screens.list_scene_objects(slug, screen_id)
|
||||
for o in objects:
|
||||
o["rendered_html"] = screens.render_scene_object(o)
|
||||
|
||||
# "Monde" (voir static/js/play/personnage-controller.js::
|
||||
# forgeUpdateSceneWorldSize, même principe côté serveur) : un "fond"
|
||||
# posé à sa taille RÉELLE (souvent plus grande que la scène, voir
|
||||
# add_scene_object.py) rend visible/joignable, dans CET éditeur, tout
|
||||
# ce qui dépasse la scène nominale plutôt que de le rogner (le
|
||||
# glisser-déposer le permet déjà depuis le fix précédent — sans
|
||||
# agrandir le canevas ici, cette partie restait invisible/injoignable
|
||||
# à la souris). Le rectangle "🎥 Champ de la caméra" (voir
|
||||
# templates/scene_edit.html) marque ensuite où s'arrête la scène
|
||||
# nominale À L'INTÉRIEUR de ce monde plus grand.
|
||||
world_width, world_height = screen["scene_width"], screen["scene_height"]
|
||||
for o in objects:
|
||||
if o["kind"] == "fond":
|
||||
world_width = max(world_width, o["x"] + o["width"])
|
||||
world_height = max(world_height, o["y"] + o["height"])
|
||||
world_width, world_height = int(world_width), int(world_height)
|
||||
|
||||
selected_id = request.args.get("selected", type=int)
|
||||
personnage_data = None
|
||||
personnage_commands = None
|
||||
@@ -95,6 +113,7 @@ def render_scene_edit(slug, screen_id, game):
|
||||
return render_template(
|
||||
"scene_edit.html",
|
||||
game=game, screen=screen, all_screens=all_screens,
|
||||
world_width=world_width, world_height=world_height,
|
||||
objects=objects, selected_id=selected_id, personnage_data=personnage_data,
|
||||
personnage_commands=personnage_commands or screens.DEFAULT_PERSONNAGE_COMMANDS,
|
||||
personnage_role=personnage_role or screens.DEFAULT_PERSONNAGE_ROLE,
|
||||
|
||||
Reference in New Issue
Block a user