cocos2d-x 中不同layer下的node的坐标转换

在网上搜出来的这些个坐标转换的例子都好官方,无论是解释还是例子都不实在。但在具体的项目开发中总是遇到各种坐标转换的问题。这里记录一下不同layer下两个坐标的转换。


例如: 当layer A 上有一个BtnA,layer B 上有一个BtnB,你知道Btn A 的getPosition ,也知道Btn B 的 getPosition, 这个时候你想要把 Btn A 放到B的坐标上去应该set神马样的Position呢??

那么,下面我用一段简单的lua代码来解决这个问题。

-----BTN A 的本地坐标

local btnAPosX, btnAPosY = BtnA:getPosition()

-----Btn B 的本地坐标

local btnBPosX, btnBPosY = BtnB:getPosition()

-----Btn A 的世界坐标

local btnAWorldPos = BtnA:getParent():convertToWorldSpacebtnAPosX(  ccp(  btnAPosX, btnAPosY ) )

-----Btn B 在 Btn A 的本地坐标

local btnBNodePos = BtnB:getParent():convertToNodeSpace(  btnAWorldPos  )

这是拿到了b在a坐标系下面的本地坐标,给a setposition btnBNodePos .x , btnBNodePos .y 上,a就能现在在b的坐标上了。注意,这是在忽略锚点是用的函数哈~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值