feat(polaris): 《山海巡异录》③首页下半补完——scrim 放出山水金乌+主按钮册页托+CTA 加重
创始人真机眼验:表现层二轮③首页只消化上半,下半四主按钮(启程/每日一巡/图鉴/成就)仍黑底金边方钮、整屏死黑。死黑真因=上轮 scrim 0.5 把 bg-scene-02(金乌·苍岭·云海亮国风画)压死、四按钮又落偏暗青黛山峦区读成黑底方钮;现 scrim 0.5→0.3 放出山水金乌整屏即国风底,描金屏框+四角云纹装裱成卷轴,四主按钮落浅米册页卷轴托成组、启程出巡 CTA 朱漆+描金外飘框与次级拉层次,副标加墨条背衬保 scrim 降后可读性;computeHomeTargets 靶位未动。home-drive displayCount 50→58、scene-smoke 全绿、esbuild EXIT=0。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d4cb740a86
commit
c2a86b3a02
@ -582,11 +582,24 @@ export function createRunScene(api) {
|
||||
function drawHome(scene, hs) {
|
||||
const L = layerFor(scene);
|
||||
const m = hs.home.meta;
|
||||
// 满幅山水底(与地图/战斗同底,压暗略重,去纯黑感)。
|
||||
skin.bgCover(L, BG_SCENE_B, VIEW_W, VIEW_H, 0.5);
|
||||
// 题头:卷轴横条背衬 + 匾额(原来匾额光秃浮在黑底上,和别屏的 HUD 语汇脱节)。
|
||||
// 满幅青绿山水底(bg-scene-02=金乌·苍岭·云海的亮国风画)。缺点③补完:上轮 scrim 0.5 把这幅亮画
|
||||
// 压成「一片死黑」——现降到 0.3 放出山水与金乌,整屏底即国风,不再靠死黑蒙版遮;可读性改由局部册页托兜。
|
||||
skin.bgCover(L, BG_SCENE_B, VIEW_W, VIEW_H, 0.3);
|
||||
// 描金屏框 + 四角云纹:把满屏山水装裱进一幅卷轴,给整屏一道国风描金边框(去「无边界死黑」感)。
|
||||
{
|
||||
const gf = keep(scene, scene.add.graphics().setDepth(-14)); // 压在 bg(-20/-19)之上、内容(0+)之下
|
||||
gf.lineStyle(2, GOLD, 0.85); gf.strokeRoundedRect(7, 7, VIEW_W - 14, VIEW_H - 14, 12);
|
||||
gf.lineStyle(1, GOLD_DK, 0.65); gf.strokeRoundedRect(11, 11, VIEW_W - 22, VIEW_H - 22, 9);
|
||||
for (const [cx, cy, sx, sy] of [[7, 7, 1, 1], [VIEW_W - 7, 7, -1, 1], [7, VIEW_H - 7, 1, -1], [VIEW_W - 7, VIEW_H - 7, -1, -1]]) {
|
||||
gf.lineStyle(2, GOLD, 0.95); gf.beginPath(); gf.moveTo(cx + sx * 18, cy); gf.lineTo(cx, cy); gf.lineTo(cx, cy + sy * 18); gf.strokePath();
|
||||
gf.fillStyle(GOLD, 0.9); gf.fillCircle(cx, cy, 2);
|
||||
}
|
||||
}
|
||||
// 题头:卷轴横条背衬 + 匾额。
|
||||
skin.hudBanner(L, VIEW_W / 2, VIEW_H * 0.11, VIEW_W - 24, 76);
|
||||
skin.plaque(L, VIEW_W / 2, VIEW_H * 0.11, '山海巡异录', { w: 280, h: 60, size: 32 });
|
||||
// 副标背衬:scrim 降低后天光偏亮,给副标一条半透明墨条保对比(局部托底,不回退到满屏死黑)。
|
||||
keep(scene, scene.add.rectangle(VIEW_W / 2, VIEW_H * 0.175, 216, 22, INK2, 0.5).setStrokeStyle(1, GOLD_DK, 0.55).setDepth(11));
|
||||
stxt(scene, VIEW_W / 2, VIEW_H * 0.175, `出巡 ${m.runsPlayed} · 功成 ${m.wins}`, 13, '#e8dcc0');
|
||||
// 五行相生珠带(木火土金水;点题链系机制,程序绘恒渲染,补足「无一件美术」的空)。
|
||||
ELEMENT_CYCLE.forEach((el, i) => {
|
||||
@ -621,10 +634,25 @@ export function createRunScene(api) {
|
||||
const asc = hs.home.sel.ascension;
|
||||
stxt(scene, VIEW_W / 2, VIEW_H * 0.485, `进阶 ${asc}${hs.home.maxAscension > 0 ? ` / 已启 ${hs.home.maxAscension}` : ''}`, 15, INK_TEXT);
|
||||
keep(scene, scene.add.text(VIEW_W / 2, VIEW_H * 0.515, asc > 0 ? (hs.home.ascensions[asc - 1] || {}).text || '' : '无修正 · 基准巡途', { fontSize: '10px', color: '#5a4a30', fontFamily: 'serif', wordWrap: { width: 138 }, align: 'center' }).setOrigin(0.5).setDepth(12));
|
||||
// 出巡/每日(靶 homeStart/homeDaily 定死 y0.62/y0.72)。
|
||||
// 下半按钮区(缺点③补完:上轮只国风化了上半,四主按钮仍是黑底金边方钮浮在死黑上)。现先铺一方
|
||||
// 浅米册页卷轴托(与职业卡同款册页语汇),四按钮成组落在册页上,不再各自悬空;启程出巡为主 CTA,
|
||||
// 另加描金外飘框 + 四角云纹加重,与三个次级按钮拉开层次——去「四个等重方钮」。靶位一格不动。
|
||||
skin.panel(L, VIEW_W / 2, VIEW_H * 0.72, 330, 232, { radius: 16 });
|
||||
// 启程出巡:主 CTA(朱漆按钮)+ 描金外飘框 + 四角云纹(先画托再画钮,钮压托上)。
|
||||
skin.textButton(L, VIEW_W / 2, VIEW_H * 0.62, 240, 56, '启程出巡', { variant: 'primary', size: 20 });
|
||||
{
|
||||
const bx = VIEW_W / 2, by = VIEW_H * 0.62, bw = 240, bh = 56;
|
||||
const cf = keep(scene, scene.add.graphics().setDepth(11)); // 压册页托与钮面之上,只描外框不遮标签
|
||||
cf.lineStyle(1.6, GOLD, 0.9); cf.strokeRoundedRect(bx - bw / 2 - 5, by - bh / 2 - 5, bw + 10, bh + 10, 13);
|
||||
for (const [sx, sy] of [[-1, -1], [1, -1], [-1, 1], [1, 1]]) {
|
||||
const px = bx + sx * (bw / 2 + 5), py = by + sy * (bh / 2 + 5);
|
||||
cf.lineStyle(2, GOLD, 0.95); cf.beginPath(); cf.moveTo(px + sx * 12, py); cf.lineTo(px, py); cf.lineTo(px, py + sy * 12); cf.strokePath();
|
||||
cf.fillStyle(GOLD, 0.9); cf.fillCircle(px, py, 2);
|
||||
}
|
||||
}
|
||||
// 每日一巡(次级,靶 homeDaily y0.72)。
|
||||
skin.textButton(L, VIEW_W / 2, VIEW_H * 0.72, 240, 48, `每日一巡 · ${hs.home.daily.date}`, { variant: 'jade', size: 14, sub: m.daily.bestScore > 0 ? `本地最佳 ${m.daily.bestScore}` : '固定种子 · 天下同题', subColor: '#cfeee0' });
|
||||
// 图鉴/成就入口(靶 homeCollection/homeAchievements 定死 x=±90/y0.82)。
|
||||
// 图鉴/成就入口(次级,靶 homeCollection/homeAchievements x=±90/y0.82)。
|
||||
skin.textButton(L, VIEW_W / 2 - 90, VIEW_H * 0.82, 150, 44, `图鉴 ${m.collection.cards + m.collection.relics + m.collection.enemies}`, { variant: 'secondary', size: 13 });
|
||||
skin.textButton(L, VIEW_W / 2 + 90, VIEW_H * 0.82, 150, 44, `成就 ${m.achievedCount}/40`, { variant: 'secondary', size: 13 });
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user