新建一个CocosCreator场景,会在场景中自动生成一个Canvas节点,节点Size为(640,960),Anchor为(0.5,0.5),Position为(320,480),由于Canvas为根节点这里的Position即世界坐标。
世界坐标原点,对应手机左下角。向右为x轴正方向,向上为y轴正方向。
任意node的this.node.position返回的都是相对于父节点,以父节点锚点(Anchor)为原点的坐标。
把任意点坐标转换为世界坐标
找到该点对应的父节点node,根据情况调用node.convertToWorldSpace(pos)或者node.convertToWorldSpaceAR(pos)
把世界坐标转换为节点坐标
目标节点node,根据情况调用node.convertToNodeSpaceAR(pos)或node.convertToNodeSpace(pos)
补充
Cocos自带的触摸事件,返回的是世界坐标
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
private onTouchMove(event: cc.Event.EventTouch) {
let pos: cc.Vec2 = event.getLocation();//这里是世界坐标
}
Cocos射线检测返回的点是世界坐标
var raycastResult = cc.director.getPhysicsManager().rayCast(p1, p2, cc.RayCastType.Closest);
if (raycastResult.length == 1) {
//raycastResult[0].point//射线碰撞点(世界坐标)
}