迷你方块世界:3D体素沙盒AI · Claude Fable 5
游戏信息
生成提示词
可复制以下提示词,用于学习或复现这款游戏。
《迷你方块世界:3D体素沙盒》生成提示词
用途:将本提示词交给 AI 编程助手,可完整复现本游戏。
请用 Three.js(r128,本地 three.min.js,不依赖 CDN) 生成一款"我的世界"式的真 3D 第一人称体素沙盒网页游戏,单文件 index.html(除 three.min.js 外零外部资源),支持 PC 网页端与 H5 移动端。
一、世界规格
- 世界尺寸固定 128×128×64(X×Z×Y),数据用一维
Uint8Array存储,海平面高度 26 - 按 16×16 区块划分(共 8×8=64 个区块),每区块独立构建网格,方块编辑只重建所在区块(位于边界时连带重建相邻区块)
二、地形生成(程序化,由种子决定)
- 值噪声:整数格点哈希 + smoothstep 双线性插值 + 4 倍频分形叠加(注意:哈希混淆必须用无符号右移
>>>,带符号>>会造成输出恒小于 0.5 的偏置) - 高度公式:
h = 16 + 大尺度噪声(x/46,z/46)×26 + 细节噪声(x/14,z/14)×5,夹在 [6, 54] - 分层:y=0 基岩(不可破坏)→ 石头(至 h-4)→ 泥土 3 层 → 顶层草方块(h≤海平面+1 时为沙子)→ h<海平面时填水
- 矿脉(按哈希概率嵌在石头中):煤 1.2%、铁 0.6%(y<28)、钻石 0.25%(y<14)
- 树木:草方块上约 1.5% 概率生成,树干 4-6 格原木 + 两层 5×5/3×3 树叶冠(随机去角),不覆盖已有方块
三、方块与纹理
- 14 种方块:草/泥土/石头/沙/原木/树叶/水/木板/玻璃/砖/基岩/煤矿/铁矿/钻石矿
- 程序化纹理图集:Canvas 绘制 4×4 格、每格 16px 的图集(草顶绿噪点、草侧上绿下棕、原木年轮、砖块错缝、玻璃边框半透明、水 62% 透明度、矿石=石头底+彩色斑点),
NearestFilter且关闭 mipmaps 保持像素风 - 每种方块定义 top/side/bottom 三个贴图索引、solid、alpha 属性
四、渲染
- 区块网格:遍历方块 6 个面,只有相邻为空气或非不透明方块时才生成面(半透明方块之间同类相邻抑制);顶点属性含 position/normal/uv/color,按面朝向烘焙明暗(顶 1.0、东西 0.72、南北 0.82、底 0.5)
- 材质:不透明用
MeshLambertMaterial(map+vertexColors);水/玻璃单独网格,transparent + depthWrite:false + DoubleSide - 光照:环境光 + 平行光;
THREE.Fog雾效(视野距离可设置:标准 140 / 远 220) - 昼夜循环 480 秒:天空色与雾色在昼夜色间插值,平行光强度与角度随太阳位置变化
- 目标方块用
EdgesGeometry黑色线框高亮;摄像机头部在水中时给画布加 CSS 滤镜(变暗+偏蓝)
五、玩家与物理
- 碰撞盒 0.6×1.8,视点高 1.62;重力 24、跳跃初速 8.2、步行 4.3 m/s、飞行 9 m/s
- 轴分离 AABB 碰撞;垂直移动分步(每步≤0.4)防高速穿透,落地时吸附到方块顶面
- 水中:低重力下沉、按空格上浮、水平减速、高速入水播放溅水声
- F 键切换飞行模式(空格升 / Shift 降);坠出世界底部传送回顶部
六、交互
- DDA 体素射线(Amanatides-Woo)从准星发射,触及距离 6 格,返回命中方块与命中面法线
- 左键挖掘(基岩拒绝并提示;挖到钻石矿弹出提示并计数);右键放置快捷栏选中方块(目标为空气/水、且不与玩家碰撞盒重叠才允许)
- 快捷栏 9 格(草/泥土/石头/沙/原木/树叶/木板/玻璃/砖):数字键 1-9、滚轮、点击切换,DOM 渲染并从图集截取小图标
七、操作
- PC:WASD 移动、空格跳跃/游泳、Pointer Lock 鼠标视角(点击画面锁定,Esc 自动弹出暂停菜单)、左/右键挖掘/放置
- 移动端(自动检测触屏显示):左下虚拟摇杆移动(上推=前进)、右 65% 屏幕拖动视角、「挖/放」动作按钮 +「模式」切换按钮 + 跳跃(按住)+ 飞行开关
八、存档(localStorage)
- 存种子 + 编辑差量(
"x,y,z" → 方块id映射),不存整个世界;载入时先按种子重新生成再应用差量 - 另存玩家位置/视角/飞行状态/快捷栏选中、昼夜时间、统计与成就;每 15 秒自动保存 + 页面隐藏/关闭时保存
- 主菜单提供「继续游戏 / 新的世界(覆盖需确认)」
九、UI 与系统
- 覆盖层界面:主菜单(logo+按钮)、世界生成进度条(分帧构建区块,每帧≤28ms)、暂停菜单、操作说明、成就统计、设置(音效/音乐/视野距离/删除存档)
- HUD:CSS 准星、左上角坐标+当前方块+FPS、底部快捷栏
- 成就 5 个:初次开凿 / 落下基石 / 挖到钻石 / 放置 100 方块 / 挖掘 500 方块,达成弹 Toast
- 统计:累计挖掘、放置、钻石数
十、音频(WebAudio 程序化,无音频文件)
- 音效:挖掘(按材质变化的噪声脆响)、放置闷响、跳跃、入水、成就风铃、按钮
- 环境音乐:缓慢的正弦琶音和弦垫(4 组和弦轮换,8 秒一组),音效/音乐可分别开关
交付要求
- 交付
index.html+three.min.js+config.json(含 name/nickname/description/entry/icon/controls)+icon.png(256×256 平滑风格等距草方块,非像素风) - 用
node --check校验语法;用 DOM/THREE 桩做无头冒烟测试:验证地形分布(草/水/树/矿数量级)、区块网格顶点、自由落体精确落地、前进方向、射线命中、挖掘/放置与存档记录