多层背景视差滚动Parallax Scrolling

基础原理

视差效果的核心是:不同图层的移动速度不同(距离玩家越远的图层移动越慢)

实现步骤

  1. 准备分层背景
  • 将背景拆分成多个图层,按层级排序
  1. 挂载视差脚本
  • 为每个图层添加自定义脚本,控制其移动速度
scala 复制代码
// ParallaxLayer.ts
const { ccclass, property } = cc._decorator;

@ccclass
export class ParallaxLayer extends cc.Component {
    @property
    public speedFactor: number = 0.5; // 速度系数(0~1)

    private _camera: cc.Node; // 主摄像机(或跟随目标)
    private _startPos: number; // 初始位置

    start() {
        this._camera = cc.find("Main Camera"); // 根据实际路径调整
        this._startPos = this.node.x;
    }

    update() {
        // 根据摄像机位置计算图层偏移
        this.node.x = this._startPos + this._camera.x * this.speedFactor;
    }
}
  1. 进阶优化
  • 如果使用cocos creator 3.x的摄像机组件,可以直接监听摄像机的位移事件
javascript 复制代码
// 监听摄像机移动
cc.Camera.main.node.on('position-changed', (pos: cc.Vec3) => {
    this.updateLayerPosition(pos.x);
});
  • 对于超长地图,可以动态加载/卸载背景块(根据摄像机视口位置)
相关推荐
LcGero2 天前
TypeScript 快速上手:泛型与工具类型
typescript·cocos creator·游戏开发
LcGero3 天前
Cocos Creator 3.x 高维护性打字机对话系统设计与实现
cocos creator·打字机
LcGero3 天前
Cocos Creator 三端接入穿山甲 SDK
sdk·cocos creator·穿山甲
LcGero4 天前
Cocos Creator平台适配层框架设计
cocos creator·平台·框架设计
LcGero5 天前
Cocos Creator 业务与原生通信详解
android·ios·cocos creator·游戏开发·jsb
LcGero6 天前
TypeScript 快速上手:前言
typescript·cocos creator·游戏开发
Setsuna_F_Seiei7 天前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
CodeCaptain3 个月前
cocoscreator 2.4.x 场景运行时的JS生命周期浅析
cocos creator·开发经验
CodeCaptain3 个月前
CocosCreator 3.8.x [.gitignore]文件内容,仅供参考
经验分享·cocos creator
VaJoy4 个月前
Cocos Creator Shader 入门 (21) —— 高斯模糊的高性能实现
前端·cocos creator