LoZ Dungeon
《塞尔达传说》地牢关卡的重制旨在贴合原版细节,保持旧式红白机控制的触感,并对每个元素进行细致比对,以确保复刻后的关卡在视觉与操作上保持一致。


虽然游戏采用2D视觉,但墙体、障碍物和水面等元素在深度上存在区分,转场时相机会移动。为简化布局和碰撞处理,整体场景使用3D坐标系构建,仅在渲染阶段切换到2D视角,Canvas与UI逻辑保持不变。


碰撞与物理的实现是最具挑战的部分。不同交互对象使用不同的碰撞层和标签,例如武器与怪物、林克与怪物的碰撞规则各不相同。角色与静态障碍均添加 Rigidbody,以防止穿模;每帧检测后会重置速度,避免碰撞对运动产生累计影响。林克在受伤后的冷却期间会暂时禁用与怪物的碰撞,以防止重复伤害,这需要通过多层Tag和Layer的组合来实现。


在怪物实现方面,猪怪的行为最为复杂。它除了继承骷髅和蝙蝠的随机移动逻辑外,还需要处理投掷回旋镖的行为。系统必须判断投掷的最大距离、在途中与墙体的交互、回旋镖对林克与怪物的不同响应,以及投掷过程中猪怪被击杀的情况,这些都依赖于精细的Collider与Trigger判定。


角色移动看似只需根据上下左右的按键给出位移,但因为地图由正方形格子拼接且为营造伪3D效果,角色的Collider实际小于半格。每次移动后必须将角色坐标对齐到预定义的纵横线,以实现格子行走的精度。远程攻击方面,剑的投掷采用多实例方式:手持一把剑,另外四把分别对应四个方向,平时保持隐藏,仅在对应方向投掷时设为可见。投掷期间角色仍可进行其他动作,但同一方向不可同时投掷多把剑,这需要在代码中管理可见性和实例状态。


在保留原版地图和怪物的基础上,额外设计了两个小房间作为实验性内容。第一个房间的灵感来源于棋盘格子和《哈利波特》中的巫师棋,玩家以黑子身份在棋盘上完成“将军”后触发机关,棋子布局参考了《密室》关卡的改动。第二个房间采用红色地砖,长时间踩踏会对角色造成伤害,房间内的红色蝙蝠必须全部击败后才能掉落通关钥匙。

