Skip to content
 
 

Repository files navigation

超级拼豆

超级拼豆

数字拼豆游戏。支持经典玩法和导入图片生成自定义关卡相结合,更多新奇等你发现。本项目仅供学习交流使用。

Node.js Tauri License

中文 · English

首页

在 64 色钉板上完成摆豆或复原。经典关卡按章解锁;导入的图片放在自定义游戏里,不占用选关编号。进度只保存在本机。

功能

  • 摆豆:空板开局,只有目标色能放上。支持画笔、拖绘、同色填充、镜像和撤销。全部对齐后可熨烫。熨烫锁定该局,并记下通关。
  • 复原:按种子把答案拆成色块,开局抽出若干颗放进缓冲格。放对的格子立即锁定。复原不解锁下一关。
  • 选关:一章一条路。点节点后,摆豆和复原出现在道路下方,不挡章名。点空白处收起。未解锁的节点只提示先完成上一关。
  • 通关:章中某一关熨烫后进入下一关。一章最后一关熨烫后进入下一章。最后一章没有下一关。
  • 自定义游戏:导入 PNG 或 JPG。可改名、删除。边长与颜色上限分开选。边长可选 16、24、32、48、64、96、128、192、256。颜色上限可选 4、8、12、20、32、48、64。可去掉单色背景,照片还可合并相近色块,默认关闭。
  • 色号:色盘始终显示色号。长边达到 64 且放大到单格大约 22 像素后,豆子上才印出色号。色号和底稿分开开关。大图需要放得更开才能看清。
  • 视图:滚轮缩放,空格或右键拖拽平移。钉板为带孔圆柱珠。熨烫后珠子大小、光泽和孔洞不变。

自定义导入 · 满幅 199×256

自定义导入,满幅 199×256

难度

一章十关同一档。下一章升一档。第七章起停在满幅。摆豆界面按这一关的长边显示档名,竖图不按短边降档。长边达到 128 的自定义图也显示满幅。

章 等级 长边 颜色上限 复原缓冲格
第一章 教学 16 4 8
第二章 普通 24 8 5
第三章 挑战 32 12 3
第四章 精细 48 20 3
第五章 工坊 64 48 2
第六章 大幅 96 48 2
第七章 满幅 128 48 2

变难是棋盘变大、颜色变多、复原空位变少。从挑战档起可以关掉豆子上的色号。没有星级、限时或失误次数。

教学 · 第一章 · 16×16

教学:第一章爱心,16×16

普通 · 第二章 · 14×24

普通:第二章熊猫,14×24

挑战 · 第三章 · 32 边

挑战

精细 · 第四章 · 48 边

精细

工坊 · 第五章 · 64 边

工坊

大幅 · 第六章 · 96 边

大幅

满幅 · 第七章 · 128 边

满幅:第七章植物,128 边

开始使用

环境要求

  • Node.js 20 或 22
  • 桌面窗口和安装包:Rust 稳定版,Windows 目标为 x86_64-pc-windows-msvc;Visual Studio 2022 的 C++ 生成工具,含 MSVC 和 Windows SDK
  • 运行桌面程序需要 WebView2。Windows 11 自带;Windows 10 未安装时先装 Evergreen 运行库

网页

npm install
npm run dev

打开 http://127.0.0.1:5173 。首页进入选关,在道路下方选择摆豆或复原。

npm test
npm run typecheck
npm run lint
npm run build
npm run preview

桌面

先关掉已经占用 5173 端口的开发服务,再启动窗口:

npm run desktop

这是开发窗口,不生成安装包。安装包见下方「打包」。

端口 5173

netstat -ano | findstr :5173
Stop-Process -Id <PID> -Force

进度

通关记录是已熨烫关卡的 id 列表,存在本机。改掉关卡 id 后,旧的通关记录对不上。自定义关卡在网页里存在浏览器;桌面版另写在应用数据目录的 custom-levels.json。两边按修订号合并,空的一侧不会清掉已有关卡。

调试

测关时把 src/debug/config.ts 里的 debugEnabled 改成 true,刷新页面或重新打包后,选关页右下角出现「调试」。正式包保持 false,按钮不会出现。这个开关只控制入口,不改变摆豆和复原的规则。

点「调试」打开面板,点「收起调试」关掉。

操作 用法 效果
进入摆豆 输入 2-10、关卡 id(如 plant-3)或关卡标题,回车或点「进入摆豆」 直接打开该关的摆豆。不检查是否已解锁,也不写入通关记录。没有匹配时提示「没有这一关」
一键全部通关 点按钮 把全部经典关记成已熨烫,选关页会全部解锁。不改自定义游戏
清除通关记录 点按钮 立刻删掉经典关的通关记录,没有二次确认。自定义游戏还在

跳关只进入摆豆。要测复原,先用跳关或正常选关打开该关,再从道路下方进入复原。

选关页左上角的「重置关卡进度」是给玩家的。只有已经有通关记录时才出现,并且会先确认。它和调试里的「清除通关记录」清的是同一份经典关记录。

打包

正式包先把 debugEnabled 改为 false。网页包和桌面安装包都会编译前端。pic/ 只用于生成关卡,不会打进包里。src-tauri/target 是编译缓存,不需要提交。

网页

npm install
npm run build

静态文件在 dist/。本机打开:

npm run preview

桌面安装包

这条命令不占用 5173 端口。它先执行 npm run build,再编译 Rust 发行版并打安装包。

npm install
npm run desktop:build

src-tauri/.cargo/config.toml 把并行链接限制为 1,避免多个 link.exe 同时写 PDB 时出现 LNK1201。不要设置 CARGO_TARGET_DIR,产物固定写在 src-tauri/target。

产物 位置
可执行文件 src-tauri/target/release/super-perler-beads.exe
安装包 src-tauri/target/release/bundle/

窗口标题和安装名是「超级拼豆」。版本号在 src-tauri/tauri.conf.json 的 version。MSI 使用简体中文语言包,否则安装名里的中文会让 WiX 在代码页 1252 上报错并中断打包。

关卡生成

关卡正文在 src/levels/campaign.json,共 7 章,每章最多 10 关。命令经 npm run levels 传入 scripts/levels.ts,参数写在 -- 之后。玩家看到的是 title。id 在全书内唯一,建议用小写连写,例如 plant-3 这种带连字符的生成名也可以。

npm run levels -- check
npm run levels -- format
npm run levels -- make pic/plant/1-3.jpg plant-3 "植物 3"
npm run levels -- make pic/animation/1-6.jpg animation-6 "动画 6" outlines
npm run levels -- batch 图片目录
npm run levels -- batch 图片目录 keep-background
命令 行为
check 校验格式、id 不重复、每章不超过 10 关、同章同档、后一章更难
format 把 campaign.json 按章、色板和格子行排开,不改关卡内容
make 生成或替换一关。id 已存在则原位替换,并沿用该章的边长和颜色上限。新 id 追加到未满的章。满 70 关且 id 不存在时失败
batch 把目录里尚未入册的图按文件名追加。已有同名 id 不会覆盖
pics 用 pic/ 整章重写第 2–7 章。会丢掉后来改过的 id 和标题。第一章手绘关保留

make 在标题后面可以加标志:

  • outlines:保住深色细线,适合平涂卡通。
  • keep-background:不去背景。默认会从边缘扣掉接近的单色背景。

pics 要求第一章已经有 10 关。每个目录 10 张图,按文件名数字排序。扩展名为 .png、.jpg、.jpeg。内容实际是 WebP 时,本机需要 ffmpeg 和 ffprobe,脚本按文件头解码,不改原图。竖图按长边分档。

目录 章节 长边 颜色上限 背景
pic/animation 2 24 8 去除,并保留深色描边
pic/bird 3 32 12 去除
pic/dog 4 48 20 去除
pic/insect 5 64 48 去除
pic/painting 6 96 48 保留
pic/plant 7 128 48 去除

经典关生成不会打开「合并相近色块」。这个开关只在自定义导入里,默认关闭。

目录结构

src/
  domain/     关卡契约、64 色色板、难度档、摆豆与复原规则
  image/      取样、映色、去背景、限色、可选的相近色合并
  game/       对局与关卡顺序
  render/     钉板与珠子渲染
  ui/         首页、道路、对局、导入、自定义游戏
  storage/    本机通关记录与自定义关卡
  debug/      调试入口开关
  levels/     campaign.json
scripts/      关卡生成与校验
pic/          第 2–7 章原图,不打进玩法包
demo-pic/     说明文档用的截图
src-tauri/    桌面窗口
resources/    品牌图标

待办

  • 关卡表现细节待优化

许可

本项目仅供学习交流使用。

MIT

About

🧩数字拼豆游戏,支持经典闯关与导入图片生成自定义关卡--A digital fuse-bead game. Play the campaign, or import a picture as a custom level.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages