我在屏幕中心放了一个sprite,坐标是0,0。运行后,我用鼠标点击中心,得到鼠标的坐标,并且通过screenToWorld转成了世界坐标,为什么这个坐标并不是0,0,而是以屏幕左下角为坐标轴的坐标,怎么才能得到以屏幕中心为坐标轴的坐标呢?
小白求助
我在屏幕中心放了一个sprite,坐标是0,0。运行后,我用鼠标点击中心,得到鼠标的坐标,并且通过screenToWorld转成了世界坐标,为什么这个坐标并不是0,0,而是以屏幕左下角为坐标轴的坐标,怎么才能得到以屏幕中心为坐标轴的坐标呢?
小白求助
/** 通过世界坐标 获取相对节点的坐标 */
getToNodePosForWorld(worldPos: cc.Vec2, obj: cc.Node) {
return obj.convertToNodeSpaceAR(worldPos);
}
你好啊,我的这个sprite的外层节点是Canvas,套用这个函数,就是把obj替换为Canvas的node是吧?
可以试试这样
因为世界坐标就是按照左下角计算的,你的图片坐标0,0应该是你创建了一个节点在中心 下面放了一张图片,按照上面这个老哥的这个函数 第二个参数填你那个图片父节点就能得到相对坐标
好的,谢谢,有个问题想请教下,开发中,都是按照世界坐标系来计算各种数据,还是按照节点内坐标系来计算,哪种方便呢?
都会用到 没有硬性规定 看需求的