É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
@@ -203,3 +203,39 @@ def test_deleting_element_cleans_up_its_animation_clips(client, game):
|
||||
screens.add_animation_clip(game, screen_id, element_id, kind="animate_css", animate_name="fadeIn")
|
||||
screens.delete_element(game, element_id)
|
||||
assert screens.list_animation_clips(game, screen_id) == []
|
||||
|
||||
|
||||
def test_scene_edit_view_world_matches_scene_when_no_oversized_fond(client, tmp_game_slug_cleanup):
|
||||
"""Pas de "fond" plus grand que la scène -> le monde affiché reste
|
||||
exactement la scène nominale, et le repère "🎥 Champ de la caméra"
|
||||
(voir static/style.css .sceneCameraFrame) ne s'affiche pas — inutile
|
||||
tant que rien ne dépasse."""
|
||||
slug, screen_id = _create_jeu2d_game(client, tmp_game_slug_cleanup)
|
||||
html = client.get(f"/game/{slug}/screens/{screen_id}/edit").get_data(as_text=True)
|
||||
assert 'id="canvas" style="width:960px; height:540px;' in html
|
||||
assert "sceneCameraFrame" not in html
|
||||
|
||||
|
||||
def test_scene_edit_view_expands_world_for_an_oversized_fond(client, tmp_game_slug_cleanup):
|
||||
"""Bug corrigé (glisser-déposer figé à (0,0) pour un objet plus grand
|
||||
que la scène, voir static/js/scenes/scene-editor.js) : le canevas de
|
||||
l'éditeur doit maintenant afficher tout le "fond", pas seulement la
|
||||
scène nominale (960×540) qu'il dépasse — sinon la partie qui dépasse
|
||||
resterait invisible/injoignable à la souris malgré le fix du glisser."""
|
||||
slug, screen_id = _create_jeu2d_game(client, tmp_game_slug_cleanup)
|
||||
fond_id = screens.add_scene_object(slug, screen_id, kind="fond")
|
||||
screens.update_scene_object_geometry(slug, fond_id, x=0, y=0, width=1920, height=1080)
|
||||
html = client.get(f"/game/{slug}/screens/{screen_id}/edit").get_data(as_text=True)
|
||||
assert 'id="canvas" style="width:1920px; height:1080px;' in html
|
||||
# Le repère de la caméra marque toujours les bornes de la scène NOMINALE (960×540),
|
||||
# même si le canevas affiché est désormais bien plus grand.
|
||||
assert 'class="sceneCameraFrame" style="width:960px; height:540px;' in html
|
||||
|
||||
|
||||
def test_scene_edit_view_world_bounds_are_used_for_drag_clamping(client, tmp_game_slug_cleanup):
|
||||
slug, screen_id = _create_jeu2d_game(client, tmp_game_slug_cleanup)
|
||||
fond_id = screens.add_scene_object(slug, screen_id, kind="fond")
|
||||
screens.update_scene_object_geometry(slug, fond_id, x=0, y=0, width=1920, height=1080)
|
||||
html = client.get(f"/game/{slug}/screens/{screen_id}/edit").get_data(as_text=True)
|
||||
assert "var SCENE_WIDTH = 1920;" in html
|
||||
assert "var SCENE_HEIGHT = 1080;" in html
|
||||
|
||||
Reference in New Issue
Block a user