diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 11:18:01 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 11:18:01 +0800 |
| commit | e959b1df06f29fe6542cc6cbe2f9005f620d5dc9 (patch) | |
| tree | 92e5842f16d86861494508ee642dbf5bedd85d9c /src/LivingVillage.Desktop/HudLayout.fs | |
| parent | 016471d580d1c41babc3e04e3b49b31c007e5562 (diff) | |
| download | living-village-e959b1df06f29fe6542cc6cbe2f9005f620d5dc9.tar.gz | |
p75: HUD 顶部条去整宽深色带(改紧凑半透明药丸)
HudLayout:BarTop/BarBottom alpha=0,新增 pillHairline 1px 发丝线与 pillHeight;DrawHudBar 不再铺整条底色与整宽 accent,改画每段半透明药丸+发丝线,图标+数值并排、右侧留白充足。布局/语义/快捷键不变,HUD 结构仅视觉层次。新增 P75HudStripTests(4 例);LV_P43_SHOT 同机位昼/夜证据 + analyze-p75(顶部条近黑 2.6% vs 整宽带 100%、无实心黑块、亮字仍在,verdict=PASS)。Desktop 354/354、Kernel 120/120、digest 与 p70 一致。
Diffstat (limited to 'src/LivingVillage.Desktop/HudLayout.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/HudLayout.fs | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/LivingVillage.Desktop/HudLayout.fs b/src/LivingVillage.Desktop/HudLayout.fs index b19df4b..cd06224 100644 --- a/src/LivingVillage.Desktop/HudLayout.fs +++ b/src/LivingVillage.Desktop/HudLayout.fs @@ -122,6 +122,17 @@ module HudLayout = let y = (barHeight - height) / 2 Microsoft.Xna.Framework.Rectangle(x - 6, y, width + 12, height) + /// P75:药丸底部 1px 强调发丝线(取代整条铺满的 accent 带,让留白更足)。 + let pillHairline (x: int) (width: int) : Microsoft.Xna.Framework.Rectangle = + let pill = segmentBackdrop x width + Microsoft.Xna.Framework.Rectangle(pill.X + 1, pill.Y + pill.Height - 2, max 1 (pill.Width - 2), 1) + + /// P75:顶部不再铺整宽深色带(0 = 仅靠半透明药丸承载信息,去掉「整块深色底」)。 + let bandAlpha : byte = 0uy + + /// P75:药丸高度的紧凑上界(须 < barHeight 以留出上下留白)。 + let pillHeight : int = 8 * textScale + 10 + type Palette = { BarTop: Color BarBottom: Color @@ -131,25 +142,25 @@ module HudLayout = SegmentBackdrop: Color Outline: Color } - /// 白天暖色 / 夜晚(冬夜)冷色微调;均为半透明渐变窄条,无大黑块。 - /// 每个常驻片段再叠一层半透明底色 + 1px 深色描边,双时段都能读清。 + /// 白天暖色 / 夜晚(冬夜)冷色微调;半透明药丸承载信息,无整宽深色带、无大黑块。 + /// P75 起 `BarTop/BarBottom` 保留字段但 alpha=0(不再铺整条底色)。 let palette (mode: M6DayNight) : Palette = match mode with | Day -> - { BarTop = Color(40, 56, 62, 200) - BarBottom = Color(22, 34, 40, 200) + { BarTop = Color(40, 56, 62, 0) + BarBottom = Color(22, 34, 40, 0) Accent = Color(212, 168, 96) Label = Color(206, 220, 208) Value = Color(242, 248, 234) SegmentBackdrop = Color(8, 14, 20, 150) Outline = Color(6, 10, 14, 255) } | Night -> - { BarTop = Color(22, 30, 48, 205) - BarBottom = Color(13, 19, 33, 205) + { BarTop = Color(22, 30, 48, 0) + BarBottom = Color(13, 19, 33, 0) Accent = Color(120, 168, 196) Label = Color(176, 196, 214) Value = Color(228, 238, 246) - SegmentBackdrop = Color(4, 8, 16, 160) + SegmentBackdrop = Color(4, 8, 16, 170) Outline = Color(3, 6, 12, 255) } // ---- P43:右上日历钟卡(纯模型;季节/天数/时段/时钟全部由真实 tick 导出)---- |
