KNOWLEDGE MODULE 04
移动、寻路与视野
逐一解决距离、疲劳、无路径、跨房间路线、CostMatrix、房间可见性与远程观察问题。
WHO IT IS FOR
适合谁学习
遇到 Creep 不移动、找不到路径、跨房间失败或目标房间没有视野的玩家。
LEARNING GOAL
完成后能解决什么
从动作距离错误开始,逐步掌握路径成本、跨房间路线、疲劳和远程视野诊断。
SYSTEM MAP
移动、视野与寻路判断链
先确认目标和视野,再区分房间级路线与格子级 PathFinder,最后用后续 tick 的位置变化验证结果。
- 01目标
对象和房间是否有效
- 02视野
Game.rooms 是否可见
- 03房间路线
findRoute 规划跨房间
- 04格子路径
PathFinder / CostMatrix
- 05下一 tick
位置、fatigue、返回值复核
LEARNING STAGE
先解决常见错误
先排查距离不足、moveTo 不移动和 ERR_NO_PATH。
- 01Screeps ERR_NOT_IN_RANGE(-9)怎么处理:Creep 动作距离与 moveTo 排查Screeps 错误排查 · 7 分钟阅读
Screeps 中 Creep 动作返回 ERR_NOT_IN_RANGE(-9)时,先确认目标与动作距离,再检查 moveTo() 返回值,并在下一 tick 重试。包含范围 1、范围 3 和 ERR_NO_PATH 排查示例。
- 02Screeps moveTo() 返回 OK 但不移动怎么排查Screeps 错误排查 · 11 分钟阅读
Screeps moveTo() 返回 OK 但 Creep 不移动、走不动或卡住?按有效 MOVE、fatigue、返回码、reusePath 缓存、交通阻挡和同 tick 命令覆盖逐层排查。
- 03Screeps ERR_NO_PATH 怎么排查:目标范围、回调与跨房间路线Screeps 错误排查 · 7 分钟阅读
区分moveTo的ERR_NO_PATH、noPathFinding的ERR_NOT_FOUND和PathFinder incomplete,从目标范围、地形、回调、maxOps与出口逐步排查。
LEARNING STAGE
理解路径与移动成本
继续学习 CostMatrix、跨房间路线、距离 API 和 fatigue。
- 04Screeps PathFinder.search():range、返回值与完整路径判断Screeps 进阶开发 · 7 分钟阅读
正确使用 PathFinder.search() 设置 goal range,读懂 path、cost、ops、incomplete,并判断搜索是否真正完成,而不是只看 path 有没有内容。
- 05PathFinder CostMatrix 怎么设置道路、障碍和高成本格子Screeps 进阶开发 · 8 分钟阅读
解释 CostMatrix 中 0、普通成本和 255 的含义,在 roomCallback 中处理道路、建筑、Creep 与自定义避让格,并检查 PathFinder.search 的完整结果。
- 06Game.map.findRoute() 怎么规划并执行跨房间路线Screeps 进阶开发 · 8 分钟阅读
解释 findRoute() 返回的房间级出口序列、routeCallback 成本和 ERR_NO_PATH,并提供带房间偏好、路线缓存与逐房间移动的完整示例。
- 07RoomPosition 距离方法怎么选:range、相邻、同格与路径Screeps 基础工程 · 6 分钟阅读
比较getRangeTo、inRangeTo、isNearTo、isEqualTo、findClosestByRange和findClosestByPath,区分线性距离与真实可达路径。
- 08Screeps MOVE 部件怎么配:fatigue、地形与负载Screeps 基础工程 · 10 分钟阅读
解释 Screeps 道路、平地、沼泽产生的 fatigue,正确区分 active MOVE 恢复、普通 body 重量和实际装载 CARRY,并排查受伤后移动变慢。
- 09Screeps Creep.pull():两只 Creep 同 tick 协同移动Screeps 进阶开发 · 7 分钟阅读
正确使用 Creep.pull() 协调两只相邻 Creep 的同 tick 移动,理解 pull 与 move 的三段配合、返回码、fatigue 转移和失败边界。
LEARNING STAGE
视野与可视化
最后处理房间可见性、Observer 和 RoomVisual 调试。
- 10Game.rooms[roomName] 为什么是 undefined:Screeps 房间视野与 Observer 排查Screeps 常见问题 · 11 分钟阅读
解释 Game.rooms[roomName] 为什么会是 undefined,区分当前视野与 Memory 历史状态,并用 Game.getObjectById()、lastSeenAt 和 Observer 的下一 tick 时序安全恢复远程房间任务。
- 11StructureObserver.observeRoom() 怎么安全获取远方房间视野Screeps 进阶开发 · 8 分钟阅读
解释 Observer 的10房间范围、请求与下一tick读取时序、返回码和Memory状态,并提供不会把当前视野误判为观察结果的完整示例。
- 12RoomVisual 怎么画状态、目标和路径来辅助调试Screeps 基础工程 · 7 分钟阅读
用RoomVisual绘制Creep状态、目标连线和任务标记,控制可视化开关、对象数量与数据大小,并区分画面提示和真实行为结果。