diff --git a/desktop/.gitignore b/desktop/.gitignore index 88f22c9..1a9b8e4 100644 --- a/desktop/.gitignore +++ b/desktop/.gitignore @@ -11,6 +11,7 @@ dist/ # Tauri 生成的权限 schema(构建产物,随 tauri-build 版本变化)。 /src-tauri/gen/schemas/ -# 本机开发用的状态:dev 配置(里面有密码哈希)与演示/录制的输出、界面截图。 +# 本机开发用的状态:dev 配置(里面有密码哈希)、演示/录制的输出、界面截图。 +# 截图不是源码,它们随界面一起变;要看就去 `pnpm app` 跑起来,或者自己跑 .dev/shoot.js。 /.dev/ -/.shots/ +/screenshots/ diff --git a/desktop/src/components/SettingsPanel.tsx b/desktop/src/components/SettingsPanel.tsx index 087a469..c89100d 100644 --- a/desktop/src/components/SettingsPanel.tsx +++ b/desktop/src/components/SettingsPanel.tsx @@ -682,8 +682,8 @@ function Calibration({ />

- 摄像头与枪管不同轴时用这里把瞄点挪到弹着点上。偏移存的是**画面比例**,所以换分辨率、 - 换窗口大小都不影响它。 + 摄像头与枪管不同轴时用这里把瞄点挪到弹着点上。偏移存的是画面比例 + ,所以换分辨率、换窗口大小都不影响它。

diff --git a/desktop/src/lib/dev-preview.ts b/desktop/src/lib/dev-preview.ts index a032459..110505d 100644 --- a/desktop/src/lib/dev-preview.ts +++ b/desktop/src/lib/dev-preview.ts @@ -376,19 +376,25 @@ export function startPreview(client: StreamClient, emit: (msg: WireMsg) => void) }, 50); // 掉血:每 3 秒一次,轮流打两块板子,顺便把命中反馈也验证了。 + // + // 打空的那一拍只做重置、不出命中("已击毁"的状态要真的能看到),其余每一拍都出一次 + // 命中。早先的写法是 `to = from === 0 ? 100 : ...` 然后按 `to >= from` 判断——那样一旦 + // 两块都打空,之后每次都是重置,命中就再也不会出现,盯着界面等闪红会等到超时。 let tick = 0; const hitTimer = window.setInterval(() => { tick += 1; const team = tick % 2; - const damage = 3 + ((tick * 7) % 20); + + if (state.hp[team] === 0) { + state.hp[team] = 100; + return; + } + const from = state.hp[team]; - const to = from === 0 ? 100 : Math.max(0, from - damage); - - // 打空之后重置成满血:界面上"已击毁"的状态要真的能看到。 + const damage = 3 + ((tick * 7) % 20); + const to = Math.max(0, from - damage); state.hp[team] = to; - if (to >= from) return; - emit({ t: "hit", board: team === 0 ? ARMOR_A : ARMOR_B, diff --git a/desktop/src/styles/global.css b/desktop/src/styles/global.css index d39be91..fcf2ebe 100644 --- a/desktop/src/styles/global.css +++ b/desktop/src/styles/global.css @@ -1192,3 +1192,10 @@ code { font-size: 12px; z-index: 30; } + +/* 正文里需要强调的词。JSX 里的 `**` 不会被渲染成粗体——它会原样显示出来, + 而这个界面是给现场看的,不该出现源码的记号。 */ +.em { + color: var(--fg); + font-weight: 600; +}