有一个相对于父节点的坐标,有一个公用的cocos2d坐标即openGL坐标,还有就是每个节点都有自己的坐标,
比如我要在地图上点击一个人物动画,ps:首先要清楚这个人物动画是在哪个节点里面,,那我就要把触摸的点坐标,转换成那个坐标里面的点坐标,然后再判断是否是点击在人物动画的范围内。
local
locationInNode =
self
._cityBg:convertToNodeSpace(touch:getLocation()) ps:这里是将坐标转换成self._cityBg的坐标,spine 和 触摸的点都在这个坐标里面,并不是转换成相对于该spine的坐标,
人物动画的Rect :
local
rect = spine:getBoundingBox()
然后进行判断并调用相关函数:
if
spine.Flag
and
cc.rectContainsPoint(rect, locationInNode)
then
self
:npcSaying(
self
._npcJsonArray[i], spine)
spine.Flag =
false
end
以上是特例,一般是以getContentSize()获取node尺寸,然后赋node的 rect = (cc.rect(0, 0, size.width, size.height))
然后转换成相对于这个节点的坐标即可:
local
locationInNode =
node
:convertToNodeSpace(touch:getLocation())