工程(真输入化4/7·shot_probe): 7处emit→真输入——设置开/关、生涯关、状态面板开/关=真点find_button命中钮,篝火=push_click_at热点中心,二次确认=真点_confirm_btn(ui_click_probe:702先例); 判据出处注记9条(code-conventions:54遮挡纪律+设置与本地化:95+camp.md:45/16/22+level-map:11/77+battle.md:122+HUD框架:264/277+test-conventions:84截图采集); 本步凭据: shot_probe窗口化直跑PASS exit=0(七屏1280x800全存,问题=0,battle draw_calls=194<200)
This commit is contained in:
1 parent
d68c32470e
commit
e0b22f40fb
1 file changed
+18
-7
@@ -46,6 +46,7 @@ func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
# ① 菜单(启动态)——无帮助文腿(玩法速览牌不在画面,checker 无对应断言段);
|
||||
# 无副标题件,菜单文字锚只剩标题
|
||||
# oracle: design/engineering/code-conventions.md:54 模态覆盖层层级规则——boot 态顶层=start_overlay、菜单文字在屏(菜单组)
|
||||
# 自检一:boot 态顶层可见全屏层=start_overlay(内容层树遍历——屏壳是容器不当候选:
|
||||
# camp 壳 boot 态 vis=true 但成员恒隐,裸树遍历自顶向下会先命中透明壳)
|
||||
var top: Node = null
|
||||
@@ -82,11 +83,12 @@ func _ready() -> void:
|
||||
_meta[String(pair[0])] = ProbeUiUtil.label_rect(main.ui.screens.start_overlay, String(pair[1]))
|
||||
await _snap("menu")
|
||||
# ①b 设置面(settingsbtn 真实信号路径,开合同款真实钮)
|
||||
# oracle: design/gdd/systems/表现与支撑/设置与本地化.md:95 最小设置面已兑现:音量/减动效/全屏/退出,载体=独立设置存储+设置界面视图(设置组)
|
||||
var setbtn: Button = ProbeUiUtil.find_button(main.ui.screens.start_overlay, "设置", "prefix")
|
||||
if setbtn == null:
|
||||
_problems.append("设置入口缺失(开始层 settingsbtn)")
|
||||
else:
|
||||
setbtn.pressed.emit()
|
||||
ProbeUiUtil.push_click(main, setbtn)
|
||||
for i in 3:
|
||||
await get_tree().process_frame
|
||||
if not main.ui.modals.menu.settings_overlay.visible:
|
||||
@@ -98,9 +100,10 @@ func _ready() -> void:
|
||||
if set_close == null:
|
||||
_problems.append("设置面返回钮缺失")
|
||||
else:
|
||||
set_close.pressed.emit()
|
||||
ProbeUiUtil.push_click(main, set_close)
|
||||
await get_tree().process_frame
|
||||
# ①c 生涯页(函数直调中间态——卡② mn10:careerbtn 已撤,卡④ 笔记本改挂前无 UI 路径)
|
||||
# oracle: design/gdd/ux/camp.md:45 生涯页与四子界面同壳同形态(生涯组)
|
||||
if true:
|
||||
main._open_career()
|
||||
for i in 3:
|
||||
@@ -114,27 +117,31 @@ func _ready() -> void:
|
||||
if career_close == null:
|
||||
_problems.append("生涯页返回钮缺失")
|
||||
else:
|
||||
career_close.pressed.emit()
|
||||
ProbeUiUtil.push_click(main, career_close)
|
||||
for i in 3:
|
||||
await get_tree().process_frame
|
||||
if main.ui.modals.menu.career_overlay.visible or not main.ui.screens.start_overlay.visible:
|
||||
_problems.append("生涯页关闭后页未隐藏或开始层未恢复")
|
||||
# ② 营地场景图(进档开层新路径——卡② mn9;截图=可点击场景图形态——卡④ 契约 9 V1 验收载体)
|
||||
# oracle: design/gdd/ux/camp.md:16 营地=可点击场景图(七物件命中区表——场景图形态组)
|
||||
if not await ProbeUiUtil.open_camp_via_savesel(main, "smoke_shot_probe_camp"):
|
||||
_problems.append("营地入口缺失(选档层新档钮——新路径驱动中断)〔句柄子容器批 V1〕")
|
||||
else:
|
||||
await get_tree().process_frame
|
||||
await _snap("camp")
|
||||
main.ui.modals.camp.scene.object_pressed.emit(&"campfire") # 收闭改接篝火动线(营地根态无关闭钮——卡④ T5)
|
||||
ProbeUiUtil.push_click_at(main, main.ui.modals.camp.scene.get_hotspot_rect(&"campfire").get_center()) # 收闭改接篝火动线(营地根态无关闭钮——卡④ T5)
|
||||
await get_tree().process_frame
|
||||
main.ui.modals.menu.confirm_dialog.confirmed.emit() # 二次确认离场(关层收闭——选档层随收)
|
||||
ProbeUiUtil.push_click(main, main.ui.modals.menu.confirm_dialog._confirm_btn) # 二次确认离场(关层收闭——选档层随收)
|
||||
# oracle: design/gdd/ux/camp.md:22 篝火=离开营地回主菜单、必须二次确认(篝心动线组)
|
||||
await get_tree().process_frame
|
||||
# ③ 关卡画面(开始冒险→停点出图——入口停点语义;函数直调中间态 mn10)
|
||||
# oracle: design/gdd/ux/level-map.md:11 入口停点候选数=入口个数(关卡画面出图组)
|
||||
main._start_adventure_from_menu()
|
||||
for i in 4:
|
||||
await get_tree().process_frame
|
||||
await _snap("level")
|
||||
# GP 常驻徽章断言(读数=runner.gp 现值,刷新=写路径回执后重查〔open_choices〕)
|
||||
# oracle: design/gdd/ux/level-map.md:77 GP 常驻徽章=GP 图标+数字(冒险钱包读数;写路径回执后重查)
|
||||
var gp_label: Label = ProbeUiUtil.find_label(main.ui.modals.run.level_screen, "◈ ")
|
||||
if gp_label == null or not gp_label.is_visible_in_tree():
|
||||
_problems.append("GP 徽章不可见(关卡画面顶栏)")
|
||||
@@ -143,6 +150,7 @@ func _ready() -> void:
|
||||
if gp_label.text != expect:
|
||||
_problems.append("GP 徽章读数不符: %s != %s" % [gp_label.text, expect])
|
||||
# ④ 战斗(节点一——真实选路提交路径 press_candidate,ui_click_probe :199 同款)
|
||||
# oracle: design/gdd/ux/battle.md:122 B 区构建:站桩/明细带/轮次指示(战斗出图与几何锚组)
|
||||
if main.ui.modals.run.level_screen != null and main.ui.modals.run.level_screen.visible:
|
||||
main.ui.modals.run.level_screen.press_candidate(0)
|
||||
for i in 10:
|
||||
@@ -154,17 +162,19 @@ func _ready() -> void:
|
||||
_meta["stage_view"] = _node_rect(main.ui.battle.stage)
|
||||
_meta["board_zone"] = _node_rect(main.ui.battle.board_zone)
|
||||
# draw calls 真机测量(基线 270→目标 <200;窗口化渲染帧读数,
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:264 同屏 draw calls < 200(战斗屏性能预算组)
|
||||
# 取值时机=战斗截图同帧后一帧——呈现终态满负荷)
|
||||
await get_tree().process_frame
|
||||
var dc := int(Performance.get_monitor(Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME))
|
||||
_meta["battle_draw_calls"] = dc
|
||||
print("[shot_probe] battle draw_calls=%d(基线 270/目标 <200)" % dc)
|
||||
# ⑤ 状态面板(战斗屏状态角标真实信号路径;层在战斗屏之上开合)
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:277 模态打开遮挡或输入锁定、关闭逐层恢复(状态面板组)
|
||||
var pb: Button = main.ui.battle.board_zone.status_badge
|
||||
if pb == null or not pb.visible or pb.disabled:
|
||||
_problems.append("状态面板入口角标缺失/置灰(战斗屏 board_zone)")
|
||||
else:
|
||||
pb.pressed.emit()
|
||||
ProbeUiUtil.push_click(main, pb)
|
||||
for i in 3:
|
||||
await get_tree().process_frame
|
||||
if not main.ui.modals.run.status_panel.visible:
|
||||
@@ -176,7 +186,7 @@ func _ready() -> void:
|
||||
if status_close == null:
|
||||
_problems.append("状态面板继续钮缺失")
|
||||
else:
|
||||
status_close.pressed.emit()
|
||||
ProbeUiUtil.push_click(main, status_close)
|
||||
await get_tree().process_frame
|
||||
if main.ui.modals.run.status_panel.visible:
|
||||
_problems.append("状态面板关闭后未隐藏(继续钮路径)")
|
||||
@@ -201,6 +211,7 @@ func _ready() -> void:
|
||||
|
||||
|
||||
func _snap(key: String) -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84 golden 测试项扩项——截图采集清单扩项、实跑截图冻结(截图采集组)
|
||||
await RenderingServer.frame_post_draw
|
||||
await RenderingServer.frame_post_draw
|
||||
var img: Image = get_viewport().get_texture().get_image()
|
||||
|
||||
Reference in new issue
Block a user