TOS 开发周记 07:好友、聊天与更丰富的地图分层

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

从“看见别人”到“和别人互动”

上一周解决了其他玩家的显示,这一周开始补人与人之间的操作。客户端增加发送好友请求和好友列表:API 客户端负责请求,独立的 Friends Panel 负责列表界面,玩家对象也接入了发起请求的入口。

聊天则同时推进前后端。后端在 MapRoom 一侧加入聊天服务与消息处理,客户端增加聊天面板,并通过 Colyseus 收发消息。随后,客户端把网络消息处理从 main.gd 拆到 colyseus_message_handler.gd。这个拆分很重要,因为位置、好友和聊天消息都在增长,主场景不应该长期承担所有协议分发。

地图生成开始分层

后端这一周重新推进地块生成脚本。Tile 增加新的字段与元素类型常量,生成逻辑支持更多 layer,城市也开始分配 Region ID。这里的“分层”是数据结构上的扩展:一个地块可以承载比单一地形更丰富的信息,为后续客户端叠加显示做准备。

为了观察生成结果,后端加入第二版几何调试地图和六边形地块调试页。道路、城市、区域与地块坐标之间牵涉多套数据,调试页面仍然是排查生成结果的重要工具。客户端也在同一周修正坐标处理,并加入城市、道路、山地、海面等素材,前后端都在围绕同一套地图语义收敛。

地图上的操作入口

客户端还增加了悬停弹窗与目标容器,并整理玩家碰撞逻辑。它们把地图元素从“可以看见”继续推向“可以选中、可以成为操作目标”。这些提交尚不足以证明完整战斗流程已经形成,但界面已经为目标型操作留下位置。

本周的主线因此很清楚:世界数据变得更丰富,地图上的人也不再只是移动的图标。好友、聊天、悬停与目标选择,让多人地图开始有了互动层。

提交记录

日期 仓库 提交 原始说明
2025-11-17 客户端 1b61944 feat: add hover modal
2025-11-17 客户端 29bea97 feat: add target container
2025-11-17 客户端 a370013 tidy: collision
2025-11-18 后端 1c6d786 feat: add debug map v2
2025-11-18 客户端 4ec4107 feat: send friend request
2025-11-18 客户端 fd375cd feat: friends list
2025-11-19 后端 38e3f7d feat: add genTiles script
2025-11-19 后端 7a28749 tmp
2025-11-19 后端 9173849 feat: add chat
2025-11-19 客户端 3eaf554 tidy
2025-11-19 客户端 5e1fb67 feat: add chat
2025-11-19 客户端 e509db4 tidy: seperate message handler from main.gd
2025-11-20 后端 2ea0271 tmp: center
2025-11-20 后端 dc52be4 feat: add loog
2025-11-20 后端 e41895a feat: debug tiles map
2025-11-20 后端 f38286e feat: add more layers for tiles
2025-11-20 后端 fbabdd7 feat: assign regionId for city
2025-11-20 客户端 12c9710 fix coordinates
2025-11-21 后端 4b6b7d2 feat: abstract enum for element type

TOS 开发周记 07:好友、聊天与更丰富的地图分层

https://blog.util.online/2025/11/23/tos-weekly-history/2025-11-17-tos-weekly-07/

作者

amano

发布于

2025-11-23

更新于

2026-08-04

许可协议

评论