diff --git a/game/presentation/views/board_view.gd b/game/presentation/views/board_view.gd index e9bd731c..20399c61 100644 --- a/game/presentation/views/board_view.gd +++ b/game/presentation/views/board_view.gd @@ -231,7 +231,9 @@ func _update_world_size() -> void: return var px := Vector2(_board.width, _board.height) * (_cell + float(SEP)) - Vector2(SEP, SEP) _svp_container.custom_minimum_size = px - _viewport.size = px # 树内 stretch=true 由容器回写同值;树外(冒烟直建)此处保 1:1 + # 树内 stretch=true 时 SubViewport 尺寸由容器接管(手设被引擎拒绝并刷警告);树外(冒烟直建)才需手设保 1:1 + if not _svp_container.is_inside_tree(): + _viewport.size = px # 真实输入路径(ADR-0006 Decision 3):壳层 _gui_input → 板级公式换算 → 复用既有 hover/点选/chord 出口