Samael

cocos2d-js摄像机跟随的代码片段

最近项目中要实现一个Boss的进场动画.

在cocos2d-js中并没有实现操作摄像机的binding, 因为只是实现一个简单的镜头跟随, 期间没什么交互, 并没有什么特效, 就简单的把场景地图的进行相对的位置操作

bossEnter: function() {
    // 场景大小变成正常大小
    this.setScale(1); 
    // 把boss坐标转为世界坐标
    this._lastBossPosition = boss.getPosition();
    var pos = boss.parent.convertToWorldSpace(this._lastBossPosition); 
    // 移动到boss出现的位置
    pos = cc.pSub(cc.p(cc.winSize.width / 2, cc.winSize.height / 2), pos);
    this.runAction(cc.sequence(
                    cc.moveTo(0.3, pos)
                ));
 }
update: function(dt) {
    // 通过计算上一个frame与这个frame的boss位置差, 对场景进行相对移动
    var dp = cc.pSub(this._lastBossPosition, boss.getPosition());
    this.setPosition(cc.pAdd(dp, this.getPosition()));
    this._lastBossPosition = boss.getPosition()
}

Share this: