我之前也實現了這個功能,實現方法是角色移動到哪兒,鏡頭就setPosition到相同的位置,但此舉實在不夠優雅,於是在網上尋找更好的方法。
在論壇裏我看到了cc.follow這個方法,下面爲它的用法:
/*cc.follow(第一個參數爲cc.Node,第二個參數可選:cc.Rect),返回cc.Action*/
Camera.node.runAction(cc.follow(cc.Node));
//camera執行動作跟隨node
Camera.node.runAction(cc.follow(cc.Node,new cc.Rect(-10,-10,20,20)));
//node在Rect的矩形範圍內鏡頭不跟隨移動,將要出範圍時鏡頭跟隨移動
以上爲我從網上找到的cc.follow的使用方式,但並不實用。。。後來注意到node和camera是有層級關係,於是我把node設爲camera的下層,然而還是不行。
但是這引起了我的思考,子節點能不能跟着父節點移動呢?
我想的是將camera設爲node的子節點,移動角色(node)時,子節點(鏡頭)跟着移動。
果然,,,成功了。
那麼解決方式:將camera拖爲node的子節點。不需要給camera添加腳本,鏡頭就能跟着node移動。
另外,如果有人解決了cc.follow的問題,歡迎前來指教。
另外附上不優雅的解決方式:在正常的層級中,爲player添加腳本(加入屬性:camera),在角色移動時鏡頭也移動
//鏡頭跟隨角色移動
this.camera.node.setPosition(this.node.x,this.node.y);