lili 28797531d4 feat(adapter): E1 控制类 archetype——control-x + fall-and-catch,真九门含 I 门绿
第三 archetype 家族:连续控制 + 下落物理 + 接住(paddle-intercept 族),退役"声明式过拟合"之虑。
- control-x(input op):指定实体 x 中心对齐触点(连续控制);fall-and-catch(update op):下落物每步下移、
  触底接住(中心距≤半宽和)计分 + 接住反馈(粒子/音效,F 门)、漏接计 miss、重生回顶+受控随机 x。
- forensics additive 暴露 paddle{x,w}/ball{x,y}(供 paddle-intercept driver 的 controlCheck.paddlePath/ballPath)。
- catch.source.json fixture(realtime/continuous);控制类单测 +4(共 18 adapter)。
- e2e(集成段,本机):scaffoldFromSource 落 catch → build → 真九门 A–I 全过,**含 I 门控制跟手**
  (tap60→挡板 move-135、tap330→move270)+ score 0→2 latch + 首局门 control-body-moved 判真;瞬时件已清。
- 全 game-runtime 套件 179/179 绿。

证成:三迥异 archetype(静态点击 / realtime 漂移 / 控制类 paddle-intercept)经同一适配器都过真九门
(含仅控制类点亮的 I 门)→ E1 声明式适配器跨游戏族泛化牢固成立。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:20:23 -07:00

28 lines
1.2 KiB
JSON

{
"schemaVersion": "1.0",
"sourceHash": "2222222222222222222222222222222222222222222222222222222222222222",
"profile": { "tickModel": "realtime", "inputModel": "continuous", "progressModel": "metric" },
"gameDefinition": {
"entities": [
{ "id": "paddle", "transform": { "position": { "x": 155, "y": 790 } }, "components": ["r-paddle"] },
{ "id": "ball", "transform": { "position": { "x": 170, "y": 40 } }, "components": ["r-ball"] }
],
"components": [
{ "id": "r-paddle", "kind": "render", "shape": "rect", "w": 80, "h": 16, "color": "#4af" },
{ "id": "r-ball", "kind": "render", "shape": "rect", "w": 24, "h": 24, "color": "#fc4" }
],
"behaviors": [
{ "id": "b-control", "trigger": "input", "op": "control-x", "entity": "paddle" },
{ "id": "b-fall", "trigger": "update", "op": "fall-and-catch", "faller": "ball", "catcher": "paddle", "speed": 400, "topY": 40 }
],
"scenes": [
{ "id": "s1", "entityRefs": ["paddle", "ball"] }
],
"rules": [
{ "id": "win", "condition": "score >= config.winScore", "outcome": "win" },
{ "id": "lose", "condition": "misses >= config.maxMisses", "outcome": "lose" }
]
},
"config": { "winScore": 3, "maxMisses": 8 }
}