From e5cf6089ed6b60041f52bd311073a7114872602a Mon Sep 17 00:00:00 2001 From: Joywayer Date: Fri, 24 Jul 2026 14:56:49 +0800 Subject: [PATCH] =?UTF-8?q?docs(spec):=20=E5=BC=B9=E8=B7=B3=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E2=80=94=E2=80=94=E5=91=BD=E4=B8=AD=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E8=B7=B3=E8=BF=87=E5=B7=B2=E8=AE=BF=E9=97=AE=E6=95=8C=E4=BA=BA?= =?UTF-8?q?(=E9=98=B2=E5=AF=86=E9=9B=86=E7=BE=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=91=BD=E4=B8=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs_dev/specs/2026-07-24-bullet-bounce-design.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs_dev/specs/2026-07-24-bullet-bounce-design.md b/docs_dev/specs/2026-07-24-bullet-bounce-design.md index 95c00dc..f9672fa 100644 --- a/docs_dev/specs/2026-07-24-bullet-bounce-design.md +++ b/docs_dev/specs/2026-07-24-bullet-bounce-design.md @@ -44,7 +44,16 @@ ``` ### 2.5 命中弹跳(`bullet_manager._check_collision`) -在冷数据分支内、**pierce 处理之前**插入(伤害/状态/荷载已执行): + +**(a) 命中选择跳过已访问**(`for entity_id in hits` 循环顶,距离检查之后、施伤之前):弹跳子弹停留在密集敌群时,若不跳过 `visited`,每帧命中选择可能重复命中同一敌人(bounce 恰在密集群最有价值)。故: +```gdscript + if _bullet_contexts.has(bullet_idx): + var vt = _bullet_contexts[bullet_idx].get("visited_targets", null) + if vt != null and entity_id in vt: + continue # 弹跳已命中过此敌:跳过,避免重复命中 +``` + +**(b) 弹跳重定向**:在冷数据分支内、**pierce 处理之前**插入(伤害/状态/荷载已执行): ```gdscript var bounce: int = int(cold.get("bounce_remaining", 0)) if bounce > 0: