图层与相机:视差滚动和镜头跟随
图层决定「谁画在谁上面、谁跟着镜头动」,相机决定「玩家看哪里」。两者配合才有了滚动关卡与悬浮 HUD。
图层三件事
- 排序:图层列表从上到下即绘制顺序(上层盖下层)。典型分层:背景 < 游戏层 < 前景 < UI;
- 相机跟随开关:UI 层关掉「跟随相机」后,内容钉在屏幕上——血条、按钮、虚拟摇杆都放这层;
- 图层特效:每层可独立挂着色器(整个 UI 层加模糊、背景层加暗角)。
视差滚动(远景动得慢、近景动得快)的实现:把远景放单独图层,事件里按镜头 X 位移乘一个小于 1 的系数移动该层,层次感立刻出来。
相机控制
相机控制全是事件动作,常用的几类:
# 镜头跟随玩家(最简写法:在相机动作里以玩家为中心)
每帧:把相机 X 设为 Player.X() + CameraWidth()/2
每帧:把相机 Y 设为 Player.Y() + CameraHeight()/2
# 平滑跟随:数值缓动过去
把相机 X 用缓动滑向 Player.X() + CameraWidth()/2
# 限制不看到关卡外
配合关卡边界对象/表达式做夹取(clamp)
- 相机缩放:
SetCameraZoom拉远看全局或推进做特写; - 相机震动:命中、爆炸时给一个短促随机偏移,打击感的重要来源;
- 多相机:分屏玩法支持多视口,双人对战用得上。
实战分层模板
| 图层 | 跟随相机 | 常见内容 |
|---|---|---|
| 背景 | 是(或视差) | 远景、天空 |
| 游戏 | 是 | 关卡、角色、敌人 |
| 前景 | 是 | 遮挡装饰(草丛、雾) |
| UI | 否 | 血条、分数、按钮、摇杆 |
UI 层记得配合锚点行为:锚点定在右上角的元素,任何分辨率下都贴着右上角。
常见错误
- UI 放在了跟随相机的层上:一移动镜头 UI 就飘走——检查图层跟随开关;
- 相机跟随写成「等于玩家坐标」:画面生硬,用缓动或加半屏偏移;
- 忘记设置关卡边界:玩家跑出地图,镜头看到一片空黑。
- 上一页:场景编辑器:摆关卡的地方
- 下一页:预览与热重载:改完立刻看到效果