学习笔记

本文介绍了Cocos2dx中世界坐标与节点坐标之间的转换方法,包括如何将世界坐标转换为本地坐标及反之,并提供了具体的代码示例。

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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值