KNOWLEDGE MODULE 04

移动、寻路与视野

逐一解决距离、疲劳、无路径、跨房间路线、CostMatrix、房间可见性与远程观察问题。

12 篇文章3 个学习阶段4 / 8 模块

WHO IT IS FOR

适合谁学习

遇到 Creep 不移动、找不到路径、跨房间失败或目标房间没有视野的玩家。

LEARNING GOAL

完成后能解决什么

从动作距离错误开始,逐步掌握路径成本、跨房间路线、疲劳和远程视野诊断。

SYSTEM MAP

移动、视野与寻路判断链

先确认目标和视野,再区分房间级路线与格子级 PathFinder,最后用后续 tick 的位置变化验证结果。

  1. 01目标

    对象和房间是否有效

  2. 02视野

    Game.rooms 是否可见

  3. 03房间路线

    findRoute 规划跨房间

  4. 04格子路径

    PathFinder / CostMatrix

  5. 05下一 tick

    位置、fatigue、返回值复核

01

LEARNING STAGE

先解决常见错误

先排查距离不足、moveTo 不移动和 ERR_NO_PATH。

  1. 01Screeps ERR_NOT_IN_RANGE(-9)怎么处理:Creep 动作距离与 moveTo 排查Screeps 错误排查 · 7 分钟阅读

    Screeps 中 Creep 动作返回 ERR_NOT_IN_RANGE(-9)时,先确认目标与动作距离,再检查 moveTo() 返回值,并在下一 tick 重试。包含范围 1、范围 3 和 ERR_NO_PATH 排查示例。

  2. 02Screeps moveTo() 返回 OK 但不移动怎么排查Screeps 错误排查 · 11 分钟阅读

    Screeps moveTo() 返回 OK 但 Creep 不移动、走不动或卡住?按有效 MOVE、fatigue、返回码、reusePath 缓存、交通阻挡和同 tick 命令覆盖逐层排查。

  3. 03Screeps ERR_NO_PATH 怎么排查:目标范围、回调与跨房间路线Screeps 错误排查 · 7 分钟阅读

    区分moveTo的ERR_NO_PATH、noPathFinding的ERR_NOT_FOUND和PathFinder incomplete,从目标范围、地形、回调、maxOps与出口逐步排查。

02

LEARNING STAGE

理解路径与移动成本

继续学习 CostMatrix、跨房间路线、距离 API 和 fatigue。

  1. 04Screeps PathFinder.search():range、返回值与完整路径判断Screeps 进阶开发 · 7 分钟阅读

    正确使用 PathFinder.search() 设置 goal range,读懂 path、cost、ops、incomplete,并判断搜索是否真正完成,而不是只看 path 有没有内容。

  2. 05PathFinder CostMatrix 怎么设置道路、障碍和高成本格子Screeps 进阶开发 · 8 分钟阅读

    解释 CostMatrix 中 0、普通成本和 255 的含义,在 roomCallback 中处理道路、建筑、Creep 与自定义避让格,并检查 PathFinder.search 的完整结果。

  3. 06Game.map.findRoute() 怎么规划并执行跨房间路线Screeps 进阶开发 · 8 分钟阅读

    解释 findRoute() 返回的房间级出口序列、routeCallback 成本和 ERR_NO_PATH,并提供带房间偏好、路线缓存与逐房间移动的完整示例。

  4. 07RoomPosition 距离方法怎么选:range、相邻、同格与路径Screeps 基础工程 · 6 分钟阅读

    比较getRangeTo、inRangeTo、isNearTo、isEqualTo、findClosestByRange和findClosestByPath,区分线性距离与真实可达路径。

  5. 08Screeps MOVE 部件怎么配:fatigue、地形与负载Screeps 基础工程 · 10 分钟阅读

    解释 Screeps 道路、平地、沼泽产生的 fatigue,正确区分 active MOVE 恢复、普通 body 重量和实际装载 CARRY,并排查受伤后移动变慢。

  6. 09Screeps Creep.pull():两只 Creep 同 tick 协同移动Screeps 进阶开发 · 7 分钟阅读

    正确使用 Creep.pull() 协调两只相邻 Creep 的同 tick 移动,理解 pull 与 move 的三段配合、返回码、fatigue 转移和失败边界。

03

LEARNING STAGE

视野与可视化

最后处理房间可见性、Observer 和 RoomVisual 调试。

  1. 10Game.rooms[roomName] 为什么是 undefined:Screeps 房间视野与 Observer 排查Screeps 常见问题 · 11 分钟阅读

    解释 Game.rooms[roomName] 为什么会是 undefined,区分当前视野与 Memory 历史状态,并用 Game.getObjectById()、lastSeenAt 和 Observer 的下一 tick 时序安全恢复远程房间任务。

  2. 11StructureObserver.observeRoom() 怎么安全获取远方房间视野Screeps 进阶开发 · 8 分钟阅读

    解释 Observer 的10房间范围、请求与下一tick读取时序、返回码和Memory状态,并提供不会把当前视野误判为观察结果的完整示例。

  3. 12RoomVisual 怎么画状态、目标和路径来辅助调试Screeps 基础工程 · 7 分钟阅读

    用RoomVisual绘制Creep状态、目标连线和任务标记,控制可视化开关、对象数量与数据大小,并区分画面提示和真实行为结果。