在网上搜出来的这些个坐标转换的例子都好官方,无论是解释还是例子都不实在。但在具体的项目开发中总是遇到各种坐标转换的问题。这里记录一下不同layer下两个坐标的转换。
例如: 当layer A 上有一个BtnA,layer B 上有一个BtnB,你知道Btn A 的getPosition ,也知道Btn B 的 getPosition, 这个时候你想要把 Btn A 放到B的坐标上去应该set神马样的Position呢??
-----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的坐标上了。注意,这是在忽略锚点是用的函数哈~
原文链接:https://www.f2er.com/cocos2dx/344560.html