1. 知識點講解
Camera就是標記一塊區域,這塊區域就是鏡頭范圍。
拿拍電影來舉例子,當拍一個場景時,場景里常常有主角,而主角常常有主角光環,所以攝像機的鏡頭就要對准主角,鏡頭要跟着主角移動。
這里的鏡頭移動方式有兩種。一種是中心移動,也就是以主角為中心,主角移動鏡頭就同步移動;另一種是邊界移動,這種移動方式下我們給鏡頭設定一個范圍,當主角移動出這個范圍時,攝像機才移動。
我們這里用的是邊界移動的方式(中心移動的我也試了一下,真的有點暈)。
2. 步驟
新建一個Camera節點並且添加腳本,改變位置。
CameraManager2.js
cc.Class({
extends: cc.Component,
properties: {
bgSky:cc.Node,
skySca:0,
bgHill:cc.Node,
hillSca:0,
bgHillnear:cc.Node,
hillnearSca:0,
bgFloor:cc.Node,
floorSca:0,
cloudLayer:cc.Node,
cloudSca:0,
camera: cc.Node,
player: cc.Node,
},
init: function(game){
this.game = game;
},
moveBg: function(distance){
//當主角跳出鏡頭邊界時鏡頭才移動
if(this.player.y > this.camera.y+this.camera.height/2){
this.bgSky.y -= distance * this.skySca;
this.bgHill.y -= distance * this.hillSca;
this.bgHillnear.y -= distance * this.hillnearSca;
this.bgFloor.y -= distance * this.floorSca;
this.cloudLayer.y -= distance * this.cloudSca;
this.player.y -= distance;
}
}
});
參考文檔和完整的文檔和源碼下載地址: