Three.js 打造的 3D 中国象棋,棋子为拟人化战阵设计:重甲拄剑的帅/將、抱拳文士仕/士、象头持杖的相/象、马头持枪的馬、轮甲执戟的車、肩扛火炮的炮/砲、斗笠枪盾的兵/卒。
general-cinematic.mp4
包含推镜、正面英雄特写、命中震屏与闪光,以及结束后的镜头复位。
ScreenFlow.mp4
帅、仕、象、马、车、炮、兵七类角色由 Tripo v3.1 重绘,并针对 WebGL 完成网格简化与纹理压缩;红黑双方共享角色资产,通过阵营底座与色调区分。模型加载失败时会自动回退到程序化基础几何版本。
python3 -m http.server 8000 # 或任意静态服务器
# 打开 http://localhost:8000Three.js 与 OrbitControls 已固定版本并随项目本地托管,断网也可正常启动;Google Fonts 加载失败时会自动使用本机宋体/楷体回退。
- 点击己方棋子查看可走位置(绿点可落子,红圈可吃子)
- 拖拽旋转视角,滚轮缩放
- 顶部按钮:悔棋 / 换边视角 / 重开
- 按
F进入或退出全屏(也可用Esc退出)
完整实现中国象棋规则:蹩马腿、塞象眼、炮翻山、兵过河、九宫/飞将(白脸将)、将军检测、绝杀与困毙判负、悔棋。
古战场沙盘:风化夯土、干涸河谷、插地断矛、破损盾牌、营前战鼓、楚/漢战旗、火盆与余烬。吃子时按兵种播放攻击动画:
- 帅/将 — 举剑蓄势后纵劈,将令震环把目标斩飞
- 仕/士 — 双燕交叉快斩,落下旋转的八角护印
- 相/象 — 朝杖撼地,释放玉色地裂、双重震环与飞石
- 馬 — 高跃挺槊,以长枪芒贯穿目标并踏尘落位
- 車 — 拖出轮辙与速度光带直线冲城,以扇形撞击波撞飞目标
- 炮 — 瞄准蓄势、后座点火、发射带烟迹炮弹;爆炸彻底消灭目标后,炮才推进落位
- 兵/卒 — 举盾短冲,以红/蓝阵营色三叉枪芒完成破阵直刺
演示入口:?demo=general|advisor|elephant|horse|chariot|cannon|soldier;追加 &test=1 可由 window.advanceTime() 确定性逐帧推进。
npm run checkjs/rules.js— 纯规则引擎(不依赖 DOM/Three.js)js/model-assets.js— Tripo 棋子资产预加载、尺寸归一化与阵营色处理js/pieces.js— Tripo 拟人棋子与程序化汉字底座(含基础几何回退)js/board3d.js— 棋盘、标记、战场环境js/fx.js— 七类兵种专属战斗特效与临时资源回收js/main.js— 场景、交互、攻击动画编排、HUD、音效vendor/three/— 本地固定版本的 Three.js 与 OrbitControlsassets/models/— 七类经 Web 优化的 Tripo GLB 棋子模型