书写实验报告 调整开始界面 修复逃跑后重新进入战斗的问题

This commit is contained in:
2026-06-03 18:27:46 +08:00
parent ed7bb908cb
commit e0e9b5d7af
11 changed files with 268 additions and 43 deletions
+72
View File
@@ -0,0 +1,72 @@
# ManaPetWorld AI Agent 实验报告
## 1. 如何提示 Agent 实现需求
我采用了"ai 骑着 Agent 跑"的提示方式。每次让 Agent 修改前,先说明要实现的游戏体验,利用 LLM 先生成提示词和计划。
## 2. 如何让多轮修改的进度可重用
第一,要求 Agent 在每轮开始前先读取项目说明和现有代码模式。使用 `codegraph` MCP,辅助完成这项任务
第二,把需求拆成可验收的小任务。使用 `plan` 模式帮助设计。
第三,人工调试。人工验收并使用调试模式人工定位具体问题。
## 3. 多次尝试后仍然困难的错误及解决过程
实验中最难处理的问题是地图重定位和传送落点错误。
- TMX 地图中的传送对象坐标配置错误。
- 世界地图 placement 与单张地图局部坐标换算不一致。
- Warp 目标读取时把瓦片坐标和像素坐标混用。
- 玩家重定位后朝向、碰撞或附近 Warp 状态没有同步更新。
- 地图名使用了旧资源名或别名,导致目标地图解析不稳定。
Agent 前几次只根据代码推断问题,定位不够准确。之后我改变提示方式,不再直接要求“修好传送”,而是要求 Agent 先增加调试模式。
最终采用的解决方式是让 AI 增加 `F3` 坐标调试模式。调试面板显示:
- 当前地图名 `Map`
- 玩家局部坐标 `Local`
- 世界坐标 `World`
- 当前世界坐标覆盖到的地图列表
- 附近传送点及其目标地图 `Warp`
有了这些信息后,我可以重新定位问题:先在错误现场按 `F3`,记录当前地图和坐标,再告诉 Agent 修改方向,例如“当前位置已经进入目标地图,但 World 坐标覆盖不对,优先检查 LocalToWorld 换算和 world placement”,或者“附近 Warp 目标名正确但落点偏移,优先检查 ReadWarpTarget 和 TMX 对象坐标单位”。这比单纯描述“传送错了”更有效。
## 4. 最终效果
- 支持 NPC 对话、野外宠物遭遇、战斗、背包、捕捉符和任务日志。
- 支持小地图、日志面板、任务面板等 UI 展示。
<p align="center">
<img src="../screenshot/image0.png" alt="开始界面" width="600">
</p>
<p align="center">
图1:开始界面
</p>
<p align="center">
<img src="../screenshot/image1.png" alt="任务和地图探索" width="600">
</p>
<p align="center">
图2:任务和地图探索
</p>
<p align="center">
<img src="../screenshot/image2.png" alt="战斗界面" width="600">
</p>
<p align="center">
图3:战斗界面
</p>
<p align="center">
<img src="../screenshot/image3.png" alt="背包界面" width="600">
</p>
<p align="center">
图4:背包界面
</p>