TOS 开发周记 02:把六边形地图搬进 Godot

本文根据 2025-10-13 至 2025-10-19 的 Git 提交整理,是一篇待审核的历史开发周记。

客户端的第一块地图

上一周主要在后端和浏览器调试页里处理地图,这一周则全部转到 Godot 客户端。项目引入了六边形 TileMap 插件,并围绕 main.gd、主场景和控制面板快速搭出第一版地图查看器。

地图尺寸在第一天就经历了几轮扩大,随后又改成固定尺寸;这不是一条笔直的实现路线,更像是在实际画面中不断确认六边形铺设方式。到周中,每个地块的宽度可以从面板配置,原先散落的选项也被收进控制面板,地图参数终于有了比较集中的入口。

让大地图可操作

只把六边形铺出来还不够。客户端随后补上缩放、区域列表和 Sprite 展示,并清理了一轮集中在 main.gd 里的试验代码。区域列表让地图中的 Zone 不再只是内部数据,面板开始承担选择和观察世界的职责。

周末的动态加载是这一周最关键的方向变化:地图不再只按一次性、固定范围的思路处理,而是开始根据视野组织加载。最后的裁剪调整很小,却与动态地图的显示边界直接相关。

一边试,一边收拢

这一周有两个很大的临时提交,也有明显的删除和重构。回看历史,我更愿意保留这种真实感:客户端还在寻找合适的地图表现方式,但插件、主场景、控制面板与动态加载已经形成了基本分工。后面继续做元素、城市和玩家时,至少有了一张真正能承载它们的 Godot 地图。

提交记录

日期 仓库 提交 原始说明
2025-10-13 客户端 143b9f0 feat: add panel
2025-10-13 客户端 778dd3b tmp
2025-10-13 客户端 80641ba feat: zoom
2025-10-13 客户端 8507ae5 init with addons
2025-10-13 客户端 9c27182 feat: expand map again
2025-10-13 客户端 c83b2a5 feat: enlarge map
2025-10-13 客户端 cc7cfe3 tidy: clean code!
2025-10-13 客户端 eb3e6c9 feat: list zones
2025-10-15 客户端 bc823da feat: add sprite
2025-10-16 客户端 4141a0b tidy: fixed map size
2025-10-16 客户端 aedba32 feat: allow to configue width per tile
2025-10-18 客户端 5705a85 refactor: move options into panels
2025-10-18 客户端 e57b18e tmp: white
2025-10-19 客户端 315bc09 feat: dynamicly load
2025-10-19 客户端 b77183f feat: clip
作者

amano

发布于

2025-10-19

更新于

2026-08-04

许可协议

评论