cocos2d-------坐标系的转换

 许久之后遇到问题,立马又来发了一篇。这次的内容跟C++无关,是有关cocos2d的一个小技术点————本地坐标与世界坐标

-----------------------------------------------------------------------------------------------

在cocos中有两种坐标系——本地坐标系和世界坐标系。

本地坐标系:

  这个坐标系是基于节点以及层的坐标系,例如有两个节点——node1和node2,node1在Layer中,node2在node1中,那么获得的node1坐标是世界坐标系,获得node2坐标是本地坐标(两坐标是相互独立的),这里暂不讨论锚点,均为默认值。

在Layer中原点是(0,0),在节点node1中原点是(0.5,0.5)。。。有点小偏离话题。

最近在工作上遇到一个问题,做一个效果,从一个点移动到另一个点,除了动作用cc.MoveTo之外,其次还需要知道起始点以及终点,但是因为是动态改变,并不能使用固定数值,而具体的是从一个层的中点移动到一个节点的位置,但是麻烦的是这个节点跟这个层并不是父子关系,哎,伤脑经。。。

有人提供了两个方法让我去了解一下convertToWorldSpace、convertToNodeSpace,这里不谈后者(因为没用到。。。汗,没错,是小博懒)。

convertToWorldSpace将坐标转换成世界坐标,那么该怎么使用呢???

第一种:node1:convertToWorldSpace(node1:getPosition(cc.p(0,0)))

第二种:node1:getParent():convertToWorldSpace(node1:getPosition())

 

这两种都是可行的,首先解释一种

很明显节点坐标转换成世界坐标,以节点为参照,通过转换本地坐标原点(上文有讲述,在节点中的是本地坐标),获得的类型为世界坐标类型。

第二种方法

与第一种相比,参照物成了父层,而在此例中父层是Layer,它的坐标是世界坐标,因此获得的类型为世界坐标类型。

----------------------------------------------------------------------------------

苍白的文字至此结束,小博还会将自己遇到的问题逐渐的更新上来,希望对大家有所帮助,并且如有解释不到位之处,希望多多指正!!

转载于:https://www.cnblogs.com/chen1026/p/9008016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值