feat: page3 铺「黑」背景并统一配色,page1 落日修正为正圆

page3 空白格按 page1「天」的明度铺「黑」,nametag 与「演职员表」四周整格避让
(标题留白缩矮一格后居中,牌子整体上移一格);电线、麻雀、草、消防栓配色并入
熔岩暖色族。page1 去掉太阳上下端帽,行宽按半径 8 的圆逐行取整。
标题非强调部分改用与两页小字一致的 #e6dac6。
This commit is contained in:
rogerwang2008 committed 2026-11-11 04:10:59 +08:00
1 parent b0da74bb96
commit 07c2ab1f25
4 files changed
+65 -35

No files matched your search

+1 -3
View File
@@ -11,10 +11,9 @@
{ x: 4, y: 16, tone: 'rose' },
];
/* 落日:整体下移贴近楼群,形成日落;
/* 落日:贴近楼群的日落圆盘,行宽按半径 8 的圆逐行取整(中心 x=14、y=26.5);
色调按数组顺序,顶部偏红 → 底部偏黄 */
const sun = [
{ y: 18, x: 12, w: 4 },
{ y: 19, x: 10, w: 8 },
{ y: 20, x: 9, w: 10 },
{ y: 21, x: 8, w: 12 },
@@ -30,7 +29,6 @@
{ y: 31, x: 8, w: 12 },
{ y: 32, x: 9, w: 10 },
{ y: 33, x: 10, w: 8 },
{ y: 34, x: 13, w: 2 },
];
/* 飞鸟:数量减少,间距不等,仅少量成对;上下拉开分布 */
+51 -23
View File
@@ -1,6 +1,6 @@
/* 第 3 页场景数据
前景:演职员表;背景:电线、麻雀、草。
本页不铺「天」,空白格保持为空。 */
前景:演职员表与 nametag;背景:电线、麻雀、草、火山。
空白格铺淡色「黑」,nametag 与标题四周的空白格保持留空。 */
(() => {
/* 固定种子的噪声,保证每次渲染一致 */
@@ -93,11 +93,59 @@
cls: 'lava-b',
});
/* 扣空:整格留白,供前景文字与 nametag 避让(先扣空,其余背景字仍可覆盖) */
const clear = (x, y, w, h) =>
Array.from({ length: h }, (_, j) => ({
text: ' '.repeat(w),
x,
y: y + j,
cls: 'void',
}));
const NAMES = [
'郑滕飞', '秦雪莹', '关宸宇', '王天晓', '谢雨舟', '储明威', '庞熙若',
'刘婉莹', '陈彦淇', '古雅文', '周胤伯', '郑佳欣', '娄敬庭', '张加弛',
'李昀芷', '吴红霓', '鲍馨仪', '刘润泽', '李若熙', '马希予', '袁立桓',
'蒋子模', '李有睿', '王海心', '朱丽烨', '朱彦阳', '汪楚钧', '吴玥',
'张梓轩', '罗午阳', '郭柯言', '王之饶', '应玥', '湛茜茜', '黄钰涵',
'虞韫嘉',
];
const TAG = {
cols: 4,
rows: 9,
width: 5,
height: 2,
gapX: 1,
gapY: 1,
left: 2,
top: 11,
};
/* 每个牌子占 5 × 2 格 */
const tagClear = [];
for (let row = 0; row < TAG.rows; row++) {
for (let col = 0; col < TAG.cols; col++) {
tagClear.push(
...clear(
TAG.left + col * (TAG.width + TAG.gapX),
TAG.top + row * (TAG.height + TAG.gapY),
TAG.width,
TAG.height
)
);
}
}
TextScene.render({
cols: 28,
rows: 44,
skyChar: '',
skyChar: '黑',
skyClass: 'ink',
glyphs: [
/* 前景避让:演职员表(x10.8–17.2 / y4.7–6.3)四周留约半格,再是全部牌子 */
...clear(9, 4, 10, 3),
...tagClear,
/* 电线:整行贯穿页面 */
{ text: '电线'.repeat(14), x: 0, y: 8, cls: 'wire' },
/* 麻雀:竖排于从左到右第四格,落在电线上方 */
@@ -125,26 +173,6 @@
scene.append(credits);
/* 36 个 nametag:4 列 × 9 行,补满 */
const NAMES = [
'郑滕飞', '秦雪莹', '关宸宇', '王天晓', '谢雨舟', '储明威', '庞熙若',
'刘婉莹', '陈彦淇', '古雅文', '周胤伯', '郑佳欣', '娄敬庭', '张加弛',
'李昀芷', '吴红霓', '鲍馨仪', '刘润泽', '李若熙', '马希予', '袁立桓',
'蒋子模', '李有睿', '王海心', '朱丽烨', '朱彦阳', '汪楚钧', '吴玥',
'张梓轩', '罗午阳', '郭柯言', '王之饶', '应玥', '湛茜茜', '黄钰涵',
'虞韫嘉',
];
const TAG = {
cols: 4,
rows: 9,
width: 5,
height: 2,
gapX: 1,
gapY: 1,
left: 2,
top: 12,
};
let nameIndex = 0;
for (let row = 0; row < TAG.rows; row++) {
for (let col = 0; col < TAG.cols; col++) {