下载 App
今天更新那点事!
本次大改造总结:
1. 无限地图 + chunk 流式加载(World.lua 全重写)
x 轴无限:地形是纯函数(seed + 坐标哈希),chunk 宽 32 列,按需生成、过远卸载(卸载后仍可确定性重生)
玩家挖掘/放置/砍树记录在 edits 与 chopped 表,chunk 重生时自动回放,改动不丢失
UpdateStreaming(pxCol) 每帧保持玩家周边 ±10 chunk,实现流畅无限探索
地形改用多频段值噪声(山丘 + 洞穴 + 大洞腔),矿脉按深度分层(煤→铁→宝石→金),沙地由低频噪声决定,树由列哈希决定(含 6 列间距、树干被编辑则不重生)
2. 光照窗口化(性能必需)
全图光照改为以玩家为中心 ±64 列的窗口重算(BFS 天光/块光),写回 chunk;移动超过 24 列或方块变化才重算
修复了天光/块光复用队列导致的 nil 比较崩溃
3. 去除草方块 — 地表统一为泥土(沙丘区为沙),树木/出生点判定同步更新
4. 像素颗粒感 + 背景墙(Renderer.lua)
每个方块叠加 8 个棋盘 dither 噪点(材质主色 × 暗色),明显像素颗粒
地表下空气不再画纯色洞壁,改为泰拉瑞亚式像素背景墙:深色底 + 错缝砖纹 + 颗粒点,受同一套光照/柔和迷雾影响
5. 开始界面 + 加载画面(main.lua 状态机)
菜单:深蓝底、绿色大字标题「沙盒世界」、两个按钮(开始新游戏 / 随机新世界)、操作提示
进游戏先走分帧加载:ProgressBar + 百分比实时显示(每帧只生成 5 个 chunk,不卡死),完成后才建玩家进入 STATE_GAME
菜单状态只渲染天空背景,游戏状态才渲染世界与摇杆
验证:LSP 通过、构建成功、280 帧 validate 0 报错,截图确认无限世界、背景墙、颗粒、树、迷雾全部生效






