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

cocos2d-x 中不同layer下的node的坐标转换,第1张

概述在网上搜出来的这些个坐标转换的例子都好官方,无论是解释还是例子都不实在。但在具体的项目开发中总是遇到各种坐标转换的问题。这里记录一下不同layer下两个坐标的转换。 例如: 当layer A 上有一个BtnA,layer B 上有一个BtnB,你知道Btn A 的getPosition ,也知道Btn B 的 getPosition, 这个时候你想要把 Btn A 放到B的坐标上去应该set神马样

在网上搜出来的这些个坐标转换的例子都好官方,无论是解释还是例子都不实在。但在具体的项目开发中总是遇到各种坐标转换的问题。这里记录一下不同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 setpositionbtnBNodePos .x,btnBNodePos .y 上,a就能现在在b的坐标上了。注意,这是在忽略锚点是用的函数哈~

总结

以上是内存溢出为你收集整理的cocos2d-x 中不同layer下的node的坐标转换全部内容,希望文章能够帮你解决cocos2d-x 中不同layer下的node的坐标转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1037432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存