cocos2dx中的世界坐标与节点坐标转换。
convertToNodeSpace 将世界坐标转换为本地坐标系
convertToWorldSpace 将本地坐标系转换为世界坐标系
第一种:(sp1,sp2都是添加在layer的精灵)
--获得世界坐标,世界坐标的原点在左下角,所以在屏幕中显示的节点 坐标都是大于零的(如果不大于零那就是节点坐标)
sp1:getParent():convertToWorldSpace(cc.p(sp1:getPosition()))
上面这个方法可以得到精灵在显示区域的世界坐标,可以封装成全局函数。getParent()也可以写成add sp1的父类。
表示,本来相对与sp1父类的坐标现在转换为世界坐标了。
第二种:将世界坐标转换为本地坐标
local worldPos1 = self.bodyLayer:convertToWorldSpace(cc.p(sp1:getPosition()))
local worldPos2 = self.bodyLayer:convertToWorldSpace(cc.p(sp2:getPosition()))
local ss = sp2:convertToNodeSpace(cc.p(worldPos1)) (得到的是sp1相对于sp2的坐标,即已调用方法的节点做原点sp2)
local ff = sp1:convertToNodeSpace(cc.p(worldPos2))(得到的是sp2相对于sp1的坐标,即已调用方法的节点做原点sp1)
注意:convertToNodeSpace(参数必须是世界坐标!!!)
CCPointconvertToNodeSpace(const CCPoint& worldPoint);
CCPointconvertToWorldSpace(const CCPoint& nodePoint);
CCPointconvertToNodeSpaceAR(const CCPoint& worldPoint);
CCPointconvertToWorldSpaceAR(const CCPoint& nodePoint);
本文介绍了Cocos2dx中世界坐标与节点坐标之间的转换方法,包括如何将世界坐标转换为本地坐标及反之,并提供了具体的代码示例。
1万+

被折叠的 条评论
为什么被折叠?



