我在尝试检测哪个字符(当前是CCLayer扩展对象)时遇到了cocos2d-x的奇怪问题。问题是我点击的精灵的位置永远不会与注册的触摸位置匹配。
我尝试了不同的转换功能,但它们似乎都不起作用。
有关如何在ccTouchesBegan中检测到地图(CCLayer)以与字符(也是CCLayer's)相同的“比例”进行触摸的任何想法?当我收到它时,我怎样才能在触摸点的地图中获得绝对位置(我会将角色移动到点击的位置)?
我知道他们可能是非常基本的问题,但我一直在寻找答案几个小时,我找不到解决方案。对cocos2d-x或cocos2d的任何建议都非常受欢迎。
提前致谢!
答案 0 :(得分:0)
1)为了检测世界点是否在节点中,我使用以下函数:
bool VUtils::isNodeAtPoint(cocos2d::CCNode* node, cocos2d::CCPoint& touchLocation) {
CCPoint nodePoint = node->convertToNodeSpace(touchLocation);
CCRect rect = CCRectMake(0, 0, node->getContentSize().width, node->getContentSize().height);
return rect.containsPoint(nodePoint);
}
2)touchLocation - 是世界坐标中的点,以便在触摸侦听器中使用CCTouch :: getLocation()方法。