Art and sound in this game are hand-authored or CC0. No generative-AI images or audio. Source list below is the same file the build checks (CREDITS.md).
本游戏的美术和音效是自制或 CC0,没有生成式 AI 的图或声音。下面清单与构建守卫核过的 CREDITS.md 同一份。
Графика и звук сделаны вручную или взяты как CC0. Генеративных ИИ-картинок и аудио нет. Список совпадает с CREDITS.md.
没有使用任何外部图片、模型、音效或字体文件,也没有 AI 生成的图:
| 内容 | 来源 | 许可 |
|---|---|---|
| 8 个可清洗物体(船体、甲板、木栈道、浮标、灯塔小门、仓库墙、吊车、灯塔外墙)的干净底图 | 代码用 Canvas 2D 画出(src/main.ts 的 paintClean) | 自制 |
| 四种污垢层(泥污、海藻、藤壶、锈斑) | 按覆盖网格用 Canvas 2D 画出(src/main.ts 的 drawDirt) | 自制 |
| 码头台面、水面、灯塔石墩、桅杆、驾驶舱、仓库屋顶、吊车底座等场景装饰 | Three.js 内置几何体和 ExtrudeGeometry 代码拼出 | 自制 |
| 「活过来」动画(晃船、小人、海鸥、浮标灯、门内灯、彩旗、吊臂、灯塔扫光) | Three.js 简单几何体 + 代码动画 | 自制 |
| 喷水 / 碎屑 / 火花 / 金币粒子 | 顶点色 Points | 自制 |
| 喷水循环音、打磨机嗡嗡、刮刀声、藤壶「啪」、完成音 | Web Audio 实时合成(src/main.ts 的 makeAudio) | 自制 |
| HUD 文字、金币图标 🪙 | 系统字体(system-ui)和系统 emoji,不随包分发 | 系统自带 |
引擎库(代码,不是美术素材):Three.js 0.186.1(MIT)。
没有使用任何外部图片、模型、音效或字体文件,也没有 AI 生成的图:
| 内容 | 来源 | 许可 |
|---|---|---|
| 12 幅像素图(救生圈、灯塔条纹、帆船、信号旗、棋盘格、菱形靶、波浪、海鸥 V、圆斑阵、十字港图、回字框、罗盘风车) | 代码生成(src/cargo/pictures.ts 的几何图案函数) | 自制 |
| 集装箱贴图、船身数字牌、泊位虚线框/锁、航道「+n」牌 | 代码用 Canvas 2D 画出(src/cargo/main.ts) | 自制 |
| 海面、码头、岸桥、船体、货块 | Three.js 内置几何体 + 程序化配色 | 自制 |
| 发船「咔」、落地闷响、出港汽笛、泊位满提示、胜利/失败音 | Web Audio 实时合成(src/cargo/main.ts) | 自制 |
| HUD 文字、手指 👆、锁 🔒 | 系统字体(system-ui)和系统 emoji,不随包分发 | 系统自带 |
没有使用任何外部图片、模型文件(第 3 轮起货船改为程序化建模,Kenney GLB 已删除),也没有 AI 生成的图:
| 内容 | 来源 | 许可 |
|---|---|---|
| HUD 数字字体 Saira Stencil One | @fontsource/saira-stencil-one(npm 包随包分发) | OFL-1.1 |
| 货船(尖艏/白色驾驶楼/烟囱/甲板箱)、岸桥、码头、系缆桩、护舷 | 程序化几何体顶点色烘焙(src/cargo/kit.ts,移植自 docs/dev/cargo2-look3 样机) | 自制 |
| 积木瓦楞/纹样贴图、甲板箱贴图、混凝土噪声、水面渐变、波纹、白浪、黄黑警示条、泊位虚线锁、数字牌 | 代码用 Canvas 2D 画出(src/cargo/kit.ts、main.ts) | 自制 |
| 尾浪 / 白烟 / 溅水 / 扫光粒子 | 实例池 InstancedMesh + 代码动画(src/cargo/fx.ts) | 自制 |
| 发船「咔」、落地闷响、出港汽笛、星线「叮」、告急低音、海关章「咚」、胜利/失败音 | Web Audio 实时合成(src/cargo/main.ts) | 自制 |
50 幅关卡像素图全部由 tools/pixel2level.ts 从下列 Kenney / OpenGameArt CC0 素材裁剪缩放、量化到调色板生成(源包存 tools/art-src/,不进构建;逐图对应关系见 tools/manifest.ts),没有 AI 生成的图,没有手写像素数组:
| 素材包 | 作者 / 来源 | 许可 |
|---|---|---|
Kenney Tiny Dungeon(tools/art-src/kenney_tiny-dungeon/) | Kenney — https://kenney.nl/assets/tiny-dungeon | CC0 |
Kenney Tiny Farm(tools/art-src/kenney_tiny-farm/) | Kenney — https://kenney.nl/assets/tiny-farm | CC0 |
Kenney Tiny Town(tools/art-src/kenney_tiny-town/) | Kenney — https://kenney.nl/assets/tiny-town | CC0 |
Kenney Tiny Ski(tools/art-src/kenney_tiny-ski/) | Kenney — https://kenney.nl/assets/tiny-ski | CC0 |
Kenney Monochrome Pirates(tools/art-src/kenney_monochrome-pirates/) | Kenney — https://kenney.nl/assets/monochrome-pirates | CC0 |
Kenney Pirate Pack(tools/art-src/kenney_pirate-pack/) | Kenney — https://kenney.nl/assets/pirate-pack | CC0 |
Kenney Fish Pack(tools/art-src/kenney_fish-pack/) | Kenney — https://kenney.nl/assets/fish-pack | CC0 |
Kenney Animal Pack(tools/art-src/kenney_animal-pack/) | Kenney — https://kenney.nl/assets/animal-pack | CC0 |
Kenney Hexagon Pack(tools/art-src/kenney_hexagon-pack/) | Kenney — https://kenney.nl/assets/hexagon-pack | CC0 |
Kenney Pixel Platformer(tools/art-src/kenney_pixel-platformer/) | Kenney — https://kenney.nl/assets/pixel-platformer | CC0 |
Kenney Pixel Platformer Food Expansion(tools/art-src/kenney_pixel-platformer-food-expansion/) | Kenney — https://kenney.nl/assets/pixel-platformer-food-expansion | CC0 |
Kenney Pixel Shmup(tools/art-src/kenney_pixel-shmup/) | Kenney — https://kenney.nl/assets/pixel-shmup | CC0 |
Ship Steering Helm (Vector+Sprite) steerwheel32.png(tools/art-src/oga_nautical/) | MamaAnita — https://opengameart.org/content/ship-steering-helm-vectorsprite | CC0 |
Simple Generic Ship ship_wood.png(512×128 四帧,取第 1 帧;tools/art-src/oga_nautical/) | darkagegames — https://opengameart.org/content/simple-generic-ship | CC0 |
没有使用任何外部图片、模型文件,也没有 AI 生成的图:
| 内容 | 来源 | 许可 |
|---|---|---|
| HUD 数字字体 Lilita One | @fontsource/lilita-one(npm 包随包分发) | OFL-1.1 |
| 码头场景(水面、堆场、码头面、系缆桩、护舷、白浪) | 程序化几何体与贴图(src/shared/,与货船共用,移植自 D006 look3) | 自制 |
| 8 个可清洗物体干净底图、污垢贴花(泥污/海藻/藤壶/锈斑) | 代码用 Canvas 2D 画出(src/main.ts) | 自制 |
| 场景装饰(船桅杆、驾驶舱、仓库、吊车、灯塔、海鸥、彩旗等) | Three.js 内置几何体代码拼出 | 自制 |
| 界面图标(工具、锁、金币、锚、对勾、工具箱等) | 内联 SVG(src/icons.ts) | 自制 |
| 「活过来」动画、喷水/碎屑/金币粒子、音效 | 沿用 D004 实现 | 自制 |
| 内容 | 来源 | 许可 |
|---|---|---|
public/ship-restore.png(过场「前往」版的 HR 船) | 本仓库 ship-tools.html 把 src/cargo/kit.ts 程序化货船离屏渲染导出,再调色板量化 | 自制 |
public/ship-escape.png(过场「返回」版的 HE 经典船) | Harbor Escape 仓库 Assets/Resources/Art/ship_c0_yacht.png(其 Tools/ArtGen/gen_art.py 程序化生成,同属自家项目)缩放版 | 自制 |
显示字体改为自持 @font-face(src/fonts/lilita.css、src/fonts/saira.css), 其中首屏数字子集由 pyftsubset 从 D006/D009 登记的两份 @fontsource woff2 里切出:
| 内容 | 来源 | 许可 |
|---|---|---|
src/fonts/lilita-one-num.woff2(Lilita One 数字子集) | 由 @fontsource/lilita-one/files/lilita-one-latin-400-normal.woff2 用 fontTools pyftsubset 按码位裁切,未改动轮廓 | OFL-1.1 |
src/fonts/saira-stencil-one-num.woff2(Saira Stencil One 数字子集) | 由 @fontsource/saira-stencil-one/files/saira-stencil-one-latin-400-normal.woff2 同上裁切 | OFL-1.1 |