版本:2.3.4
cocos的坐標系和其他引擎不一樣。
Egret中坐標系
舞台的原點在左上角
組件的原點也在左上角
角度順時針旋轉為正數,逆時針旋轉為負數

Laya中坐標系
和Egret一致

Cocos坐標系
和Laya、Egret的y軸朝下的,cocos的y軸是朝上的。
角度順時針是負數,逆時針是正數。
而且cocos新建組件錨點0.5居中

坐標轉換

原點在左下角,坐標(0,0)
canvas坐標(540,320)
白色方塊高寬200x200,坐標(100,100)
紅色方塊高寬50x50,坐標(50,50)
convertToNodeSpaceAR 將一個點轉換到節點 (局部) 空間坐標系
convertToWorldSpaceAR 將節點坐標系下的一個點轉換到世界空間坐標系
const {ccclass, property} = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
@property(cc.Node)
white:cc.Node= null;
@property(cc.Node)
red:cc.Node = null;
onLoad(){
//將紅色方塊局部位置轉成世界位置
var worldPos = this.red.parent.convertToWorldSpaceAR(new cc.Vec2(this.red.x, this.red.y));
console.log(worldPos); //(690,470)
//將世界位置轉成紅色方塊相同的局部位置
var localPos = this.red.parent.convertToNodeSpaceAR(new cc.Vec2(690, 470));
console.log(localPos); //(50,50)
}
}
紅色方塊的世界坐標,就是距離左下角原點的坐標(690,470)
