工作坊二:把门的两端、脚点和画框对齐
用一套明确但可替换的实验值,检查纸面空隙为何仍会卡人。
实线:连接或边界虚线:路线、信息或对应关系(以图中标注为准)绿色:当前重点暖色:限制/风险
默认静止;点击播放后每 7 秒切换阶段,路线运动不代表实际速度。静态原图可直接保存和打印。
01先建立实验规格,不锁死美术标准
本课临时采用 16 像素网格、480×270 逻辑视口、32×48 角色贴图和 12×8 脚点碰撞矩形。它们只是便于计算的练习值,不是 Godot 推荐的统一配置,更不是正式项目已经确定的规格。记录四项参数,修改其中之一时再检查相关几何。
工作坊不要求你现在升级引擎或下载素材。用方块替代图像,在独立练习工程中测试。网页 SVG 只是说明关系,不能充当真实碰撞运行证据。
02一件家具至少分四种轮廓
贴图轮廓是看到的全部像素;地面占地是家具实际放在地上的范围;阻挡轮廓是引擎不允许角色脚点碰撞穿过的形状;遮挡轮廓决定角色哪一部分应被挡住。高柜的上部可以盖住人物,却不应自动把整张贴图都变成地面障碍。
用四种线型叠画,不只靠颜色区分。先让脚点与柜脚关系正确,再接回正式的排序与前景层。调整贴图位置时,不要顺手移动门落点来掩饰错误。
03净宽可以计算,可玩性还要运行
若角色横向碰撞宽 12 像素,直走通道净宽为 28 像素,居中时两侧理论余量各为 (28−12)÷2=8 像素。这只解释几何余量;不证明斜走、转向、键盘输入或碰撞求解一定顺滑。
- 沿两边贴墙走,不只从中心通过。
- 从四个方向进入转角,测试反向掉头。
- 把视口切到实际显示倍率,检查出口是否仍清楚。
- 若卡住,先区分碰撞重叠、门触发还是相机误导,不一律加宽全图。
04门不是一个坐标,而是一对合同
| 项目 | D1 值守室→走廊 | D1 走廊→值守室 |
|---|---|---|
| 离场侧 | R1 东边 | R2 西边 |
| 到达点示例 | R2 (24,96) | R1 (160,96) |
| 到达朝向 | 向东进入 | 向西进入 |
| 目标端返回触发带 | R2 西侧 x=0…16 | R1 东侧 x=176…192 |
| 为什么不贴边 | 脚点左缘 18>16,离开目标触发带 | 脚点右缘 166<176,离开目标触发带 |
本例落点 x 表示脚点碰撞矩形的横向中心,碰撞没有额外横向偏移。坐标属于各自房间的局部空间;R1 练习宽度为 192。不能直接拿一侧全局坐标当另一场景落点。触发范围、碰撞宽和朝向变了,应重新核算,并实际验证没有立即二次切场。
05进入第一屏时让关系可见
从 R1 的出生点检查三件事:角色是否可见、D1 是否在可理解方向、登记台是否与装饰有层级差。再从 D1 进入 R2,检查同一画框能否解释走廊、储物间入口和出口清单的大致关系。不必强迫所有目标永远同屏;关键是玩家知道何时移动镜头会获得新信息。
打开对话面板再次观察,避免面板正好盖住离场提示。站在家具前后各调查一次,核对提示出现位置与真正可交互对象,不让高亮落在被遮挡的身体上。
06做一条真实的往返检查路线
按 R1→R2→R3→R2→R1→R2→R4 走一次,再按相反顺序返回。每道门分别从中间、贴边、按住方向不松手进入,记录到达房间、位置、朝向与是否连续切换。
若还没有可用的切场实现,可先把多个区域放在同一测试场景检验移动,再把“跨场景落点”明确标为待验证。不要用同场景通过冒称所有切场边界已通过。
07常见坏修法与更直接的修法
| 观察到的问题 | 不要先这样做 | 先检查 |
|---|---|---|
| 过门立刻返回 | 所有门加任意一秒冷却 | 落点是否仍在目标门的触发区 |
| 柜边看似留空却走不过 | 缩小全游戏角色碰撞 | 柜脚碰撞是否误套了整张贴图 |
| 从门出来不知道方向 | 自动转镜头盖住跳转 | 门两端的物理邻接与朝向是否矛盾 |
| 调查提示被挡 | 把所有家具都半透明 | 前景与交互目标的局部关系 |
冷却、透明或碰撞调整有时确有用途,但应修正实际原因,不能把每个局部几何错误都变成全局机制。
08产物与通过条件
把临时视口、网格、角色碰撞、每扇门的双端落点写入工作页。保存至少一张显示碰撞的截图与一次往返结果;若无法运行,写清等待哪项工程能力,不勾选实际通过。
通过意味着本轮指定的路线和几何条件经过检查,不意味着整个地图没有任何死角。随后新增家具、改变脚点或相机,就只补受影响的路径,而不是机械重测所有无关代码。
动手后,再勾选
不是“我看懂了”,而是你在独立练习里做出并检查过。
换一个情景,你会怎么判断?
角色过门后立即回到上一间,首先应核查什么?
用自己的话,留一条笔记
可以写“我之前以为……,现在发现……”,或者记录还没解决的问题。
↗回到资料核对
本课是解释与练习,不替代对应版本的官方手册。网页实验不运行 Godot;未标明实机验证的代码,仍需在独立工程中检查。
标记已读不会自动勾选实作,也不代表游戏功能已经完成。