I have a CCparallaxNodeExtras that scrolls infinite (following the space game tutorial). I added as a child a CCSprite made of other CCSprite, like this:
_backgroundNode = CCParallaxNodeExtras::node();
this->addChild(_backgroundNode,-2);
float acum = 0.0;
back1 = CCSprite::create();
for(int i = 0; i < num_repeats; ++i) {
CCSprite *back = CCSprite::createWithSpriteFrameName("rock.png");
back->setPosition(ccp(acum, 0));
back1->addChild(back);
acum+= back->getContentSize().width+150.0;
}
_backgroundNode->addChild(back1, 1 , ccp(0.1,0.1), ccp(0, winSize.height * 0.64));
now in my update I have this:
CCPoint backgroundScrollVert = ccp(-1024, 0);
_backgroundNode->setPosition(ccpAdd(_backgroundNode->getPosition(), ccpMult(backgroundScrollVert, dt)));
perfect, the background moves and disappears (that is what I want for now) but I need to get the collision between the sprites on that background and a fixed sprite as a child of the main node.
The problem is that whenever I try to get the collision by the simple way (intersecting the bounding boxes) it doesn't work, so I tried to just get the position of the sprites and all I get is the position fixed in the CCSprite (back1) composed by the sprites (back).
Now, is there a possible way to get the position of any individual sprite located in that parallax node? If i try something like:
CCSprite *tempsprite = (CCSprite*)_backgroundNode->getChildren()->objectAtIndex(0);
printf("%f\n", tempsprite->getChildren()->objectAtIndex(0)->getPositionX());
it prints always the same value, it is like the position is not being affected by the transformation of the parent in the background node... so, how do I get it correctly? how do I get the position relative to screen and not to the parent?