原创像素风3D沙盒游戏制作
Prompt
你是一名资深 Web 游戏工程师、图形程序员、移动端 UI/UX 设计师和游戏系统策划。请帮我制作一个可本地离线运行、一键启动、优先适配手机横屏全屏操作的原创像素风 3D 体素沙盒游戏。 【重要版权约束】 - 不要复制、还原或生成任何属于《Minecraft》/《我的世界》的受版权保护资产、原版材质、模型、音效、UI 图案、Logo、角色形象、专属名称、专属文案或代码实现。 - 目标是制作一个“原创像素风体素沙盒游戏”,玩法体验可借鉴经典方块沙盒生存游戏,但所有贴图、图标、界面文案、世界名称、方块命名、生物命名、音效都必须原创或程序化生成。 - 界面使用简体中文,视觉风格为复古像素方块风,但不能直接模仿特定受版权保护素材。 - 如果某些需求无法在合法、离线、纯前端范围内完全实现,请明确说明,并给出合法替代方案。 【项目目标】 制作一个基于 HTML、CSS、JavaScript 的 3D 体素沙盒游戏,满足: 1. 可本地离线运行。 2. 可一键启动,优先双击 index.html 即可运行。 3. 支持手机横屏全屏游玩。 4. 支持触屏操作与桌面键鼠操作。 5. 具备生存模式核心闭环:新建世界 → 采集 → 合成 → 建造 → 退出 → 重新加载。 6. 优先保证可玩性、界面可用性、基础光影效果和流畅度,再逐步扩展高级功能。 7. 所有资源必须可离线加载,不得使用 CDN、外部图片、外部字体、外部音频、外部脚本或网络请求。 【默认技术约束】 - 优先输出单个 index.html 文件,内联 CSS 和 JavaScript。 - 如果单文件过大,可拆分为多个文件,但必须提供文件结构、启动方式,并确保通过 file:// 或简单本地静态方式可运行。 - 不要依赖 fetch 加载本地文件,避免 file:// 跨域问题。 - 不要使用必须联网的库。若使用第三方库,必须说明如何离线内联;更推荐零依赖原生 WebGL / Canvas 实现。 - 优先兼容移动端浏览器,包括触摸、全屏、横屏、Pointer Events。 - 使用 requestAnimationFrame 主循环,避免阻塞。 - 使用 LocalStorage 或 IndexedDB 实现可靠存档;若存档较大,优先 IndexedDB,并提供导出/导入存档功能。 - 所有纹理、图标、音效必须使用 Canvas、程序化像素数据、Data URI 或 Web Audio 合成生成。 - 若某些高级效果无法流畅实现,允许降级为“视觉上接近”的简化实现,但必须在缺项清单中说明。 【优先实现顺序】 请严格按以下优先级实现,不要为了扩展功能破坏核心闭环: P0 必须优先完成: 1. 开始菜单: - 必须适配横屏。 - 若当前为竖屏,显示“请旋转屏幕”提示。 - 按钮大小自适应,避免在手机上过大、溢出或显示不全。 - 包含:新建世界、继续游戏、设置、操作说明。 2. 基础世界: - 分块生成地形。 - 使用种子控制世界生成。 - 支持基础方块:空气、草方块、泥土、石头、木头、树叶、沙子、水、矿石、基岩等原创版本。 3. 玩家控制: - 第一人称视角。 - 桌面端:WASD 移动、鼠标视角、左键破坏、右键放置、数字键快捷栏、E 背包、Esc 暂停。 - 移动端:虚拟摇杆移动、滑动屏幕转视角、跳跃、下蹲、破坏/放置、快捷栏、背包按钮。 4. 方块交互: - 破坏方块需要一定时间,不同方块破坏速度不同。 - 破坏后掉落物品进入背包。 - 可放置方块。 5. 背包与快捷栏: - 至少 9 格快捷栏。 - 背包网格。 - 支持点击选择、移动到快捷栏。 - 移动端按钮足够大,适合手指操作。 6. 基础合成: - 至少实现基础配方:木板、木棍、工作台、木镐、木斧、木剑、火把等。 - 配方使用数据驱动,便于扩展。 7. 生存基础: - 血量条。 - 饥饿条。 - 摔落伤害。 - 饥饿下降。 - 吃食物恢复饥饿/生命。 - 死亡与重生。 8. 基础昼夜循环: - 太阳方向变化。 - 天空颜色变化。 - 环境光变化。 9. 存档: - 保存玩家位置、背包、快捷栏、血量、饥饿值、已修改方块、时间、种子。 - 退出时自动保存。 - 重新进入可恢复。 - 提供手动保存按钮。 10. 操作说明: - 游戏内提供中文操作说明。 - 区分桌面端和移动端。 P1 在 P0 稳定后实现: 1. 更完整图形效果: - 柔和日照。 - 动态阴影,可设置开关。 - 简易环境光遮蔽,例如方块角落明暗变化。 - 雾效。 - 水面半透明、动态波动、天空反射感。 2. 天气系统: - 晴天、雨天、雷暴可选。 - 雨天粒子或简化天气效果。 3. 生物群系: - 草原、森林、沙漠、山地、雪地等。 4. 更完整采集与工具: - 镐、斧、剑、铲。 - 工具耐久。 - 不同工具影响采集效率。 5. 熔炼: - 熔炉。 - 燃料。 - 烧制产物。 6. 简单生物 AI: - 至少 2 种原创被动生物、2 种原创敌对生物。 - 简单寻路、追逐、攻击、掉落。 7. 种植: - 耕地、种子、作物生长。 8. 创造模式: - 飞行。 - 快速破坏。 - 无限方块。 - 创造物品栏。 P2 可在后续扩展中实现: 1. 村庄生成。 2. 红石逻辑。 3. 维度探索。 4. 更复杂合成树。 5. 音效与背景音乐。 6. 更高级光照与反射。 7. 更高级存档优化。 【UI 要求】 - 所有菜单必须适配横屏手机。 - 使用 viewport、vmin、vmax、clamp、safe-area-inset 实现响应式。 - 开始菜单不能因为屏幕较小而按钮溢出。 - 背包、合成、快捷栏、血量条、饥饿条必须清晰可见。 - 移动端按钮最小点击区域应足够大。 - 支持安全区域,避免刘海屏遮挡。 - 界面文字使用简体中文。 - 界面风格统一为像素风,但必须原创。 【图形与性能要求】 - 优先保证移动端流畅。 - 区块大小建议 16x16 或更小,高度可配置。 - 支持视距调节。 - 只渲染可见面或进行简单剔除。 - 使用合并几何、实例化渲染、区块网格缓存等优化手段。 - 动态阴影、AO、水面反射必须可开关。 - 如果目标设备性能不足,应自动或手动降低画质。 - 输出画质设置:视距、阴影、AO、雾效、粒子、天气。 【存档要求】 - 使用版本化存档结构。 - 支持自动保存、手动保存、退出保存。 - 支持至少一个存档槽位,最好支持多存档槽位。 - 支持导出存档为 JSON 或 Base64。 - 支持导入存档。 - 存档损坏时给出可读错误提示,而不是白屏。 - 若 LocalStorage 空间不足,自动提示并建议导出备份。 【验证要求】 请提供真实、可执行的验证流程,至少包括: 1. 新建世界。 2. 采集木头/石头。 3. 合成工作台或基础工具。 4. 放置工作台/方块/建筑。 5. 保存并退出。 6. 重新加载并确认状态恢复。 7. 移动端横屏全屏进入菜单。 8. 背包、快捷栏、合成界面可正常打开。 9. 玩家血量、饥饿值可正常显示和变化。 10. 创造模式可切换或至少说明当前是否实现。 【真实性要求】 - 不要虚构已完成功能。 - 不要说“全部完成”除非每一项都能通过验证。 - 对每个功能使用状态标记: - 已完成 - 部分完成 - 未实现 - 已简化替代 - 存在已知问题 - 最后必须输出真实缺项清单,包括: - 未实现功能 - 已简化功能 - 性能风险 - 兼容性问题 - 与原始需求的差距 - 后续建议实现顺序 【输出格式】 请按以下结构输出: 1. 实现范围确认 - 本次将实现哪些 P0 功能。 - 哪些功能只能简化。 - 哪些功能暂不实现。 2. 技术架构 - 渲染方案。 - 世界生成方案。 - 输入方案。 - 存档方案。 - UI 方案。 - 性能优化方案。 3. 可运行代码 - 优先给出完整 index.html。 - 如果内容过长,请分 Part 输出,并明确“下一部分将继续当前文件”。 - 不要只给伪代码。 - 不要省略关键初始化代码。 - 代码需包含必要注释。 4. 本地运行说明 - 如何保存文件。 - 如何打开。 - 如何在手机上测试。 - 若 file:// 有兼容限制,说明替代方案。 5. 操作说明 - 桌面端操作。 - 移动端操作。 - 菜单说明。 - 合成说明。 - 存档说明。 6. 验证清单 - 给出逐步测试步骤。 - 每一步预期结果。 - 如果无法实际运行,请明确写“未实际运行”,并提供可用于人工或自动化验证的方法。 7. 真实缺项清单 - 按表格或列表输出。 - 每项标注状态与原因。 - 给出后续补齐建议。 【执行方式】 - 请先快速分析需求边界,然后直接开始实现。 - 如果你认为一次无法输出完整可运行代码,请先输出 P0 最小可玩版本,再列出后续扩展计划。 - 不要反问过多问题;缺省信息按以上默认约束执行。 - 保持输出可粘贴、可运行、可验证。 - 若输出被截断,请在末尾写:“请输入‘继续’以生成下一部分”。
A system prompt was added to support web rendering
Response not available