发现一个cocos2dx的BUG

我用的版本是cocos2dx2.2.3
今天想用boundingBox()来实现一些事情的时候发现。精灵添加到当前layer的时候boundingBox()是跟随着精灵的,若某个精灵addChild到其他精灵的时候,这个精灵的boundingBox()不会就不在这个精灵身上了……
例如pSprite = CCSprite::create(“HelloWorld.png”);
pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(pSprite, 0);
testSprite = CCSprite::create(“icon.png”);
pSprite->addChild(testSprite);
testSprite->setPosition(ccp(bkSize.width/2,bkSize.height/2));

void HelloWorld::draw()
{
CCRect rect = testSprite->boundingBox();
ccDrawColor4B(255,0,0,255);
ccDrawRect(rect.origin,ccp(rect.getMaxX(),rect.getMaxY()));

CCRect rect2 = pSprite->boundingBox();
ccDrawColor4B(255,0,0,255);
ccDrawRect(rect2.origin,ccp(rect2.getMaxX(),rect2.getMaxY()));

}

或者说有啥方法能让box跟随着精灵添加进去,求教……

用精灵的位置+size自己创建一个rect可以吗

哥们,没有错,是你画的 rect 问题,小精灵的坐标相对于父精灵为 (240, 160),你画的小精灵的 boundingBox 其实是以小精灵相对于父节点的位置点,也就是(240, 160) 为中心点的矩形,节点的位置点是相对于父节点的左下角,你绘出的小精灵的 boundingBox 并不是世界坐标系中该精灵真正的 boundingBox,如果你想要在世界坐标系中正确显示这个紫子精灵的 boundingBox,需要加上父精灵左下角在世界坐标系中的位置点

— Begin quote from ____

引用第2楼jingyang于2014-04-25 22:22发表的 :
哥们,没有错,是你画的 rect 问题,小精灵的坐标相对于父精灵为 (240, 160),你画的小精灵的 boundingBox 其实是以小精灵相对于父节点的位置点,也就是(240, 160) 为中心点的矩形,节点的位置点是相对于父节点的左下角,你绘出的小精灵的 boundingBox 并不是世界坐标系中该精灵真正的 boundingBox,如果你想要在世界坐标系中正确显示这个紫子精灵的 boundingBox,需要加上父精灵左下角在世界坐标系中的位置点 http://www.cocoachina.com/bbs/job.php?action=topost&tid=199491&pid=937606

— End quote

受教,又增长见识了……

其实我本意想说的是 我 testSprite->boundingBox() .containsPoint( downPoint)的时候不能在点击子精灵的时候响应到。 其中downPoint是触摸点。 正是因为boundingBox() 与子精灵本身不重合了的问题……所以突发此问,觉得有bug:2::2::2::2::2:

cocos2dx 中 TableView TableViewCell *cell = table->dequeueCell(); 数据对不上,这个问题怎么还没有修改,都3.7了