← 返回列表

迷你方块世界:3D体素沙盒AI · Claude Fable 5

游戏信息

基于 Three.js 的真 3D 第一人称体素沙盒(我的世界式):128×128×64 程序化地形(值噪声山丘、湖泊、树木、煤/铁/钻石矿脉、基岩),区块化网格构建与面剔除渲染,程序化生成 16 种方块纹理图集。支持挖掘/放置 9 种方块、AABB 碰撞与跳跃游泳、飞行模式、DDA 精准拾取高亮、昼夜循环与雾效、水下滤镜。世界编辑与玩家状态自动存档,可继续游戏。含成就统计与环境音乐。

生成模型Claude Fable 5
类型3D 体素沙盒建造
分辨率自适应全屏
朝向横屏
平台PC网页端 / H5移动端(虚拟摇杆)
存档localStorage(种子+编辑差量存档)
作者VOXEL WORLD STUDIO
日期2026-07-02
PCWASD 移动,空格跳跃/游泳,鼠标视角(点击锁定),左键挖掘,右键放置,1-9/滚轮选方块,F 飞行,Esc 暂停
手机左下摇杆移动,右半屏拖动视角,挖/放按钮执行动作,模式按钮切换挖掘/放置,跳跃与飞行按钮

生成提示词

可复制以下提示词,用于学习或复现这款游戏。

《迷你方块世界: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 桩做无头冒烟测试:验证地形分布(草/水/树/矿数量级)、区块网格顶点、自由落体精确落地、前进方向、射线命中、挖掘/放置与存档记录