나는 우주 왕복선 튜토리얼을 따라 무한히 스크롤하는 CCparallaxNodeExtras를 가지고있다. 나는이를 내 업데이트에 지금CCSprite의 위치를 CCParallaxNode에 추가하는 방법은 무엇입니까?
_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));
: 나는 아이로이 같은 다른 CCSprite 만든 CCSprite를 추가
CCPoint backgroundScrollVert = ccp(-1024, 0);
_backgroundNode->setPosition(ccpAdd(_backgroundNode->getPosition(), ccpMult(backgroundScrollVert, dt)));
완벽한, 배경 이동과 사라 (즉 내가 원하는 것입니다 지금은)하지만 그 배경에있는 스프라이트와 메인 노드의 자식으로 고정 된 스프라이트 사이에 충돌을 가져와야합니다.
문제는 (테두리 상자를 교차하는) 간단한 방법으로 충돌을 시도 할 때마다 작동하지 않으므로 스프라이트의 위치를 얻으려고 했으므로 고정 된 위치입니다. 스프라이트 (back)로 구성된 CCSprite (back1).
이제 시차 노드에있는 개별 스프라이트의 위치를 얻는 방법이 있습니까? 내가 좋아하는 뭔가를 시도하는 경우 :
CCSprite *tempsprite = (CCSprite*)_backgroundNode->getChildren()->objectAtIndex(0);
printf("%f\n", tempsprite->getChildren()->objectAtIndex(0)->getPositionX());
는 위치가 배경 노드에서 부모의 변화에 영향을받지되지 않는 것처럼, 그것은 ... 같은 값입니다 항상 내가 올바르게 어떻게받을 수 있나요 인쇄합니다 ? 어떻게 화면에 상대적인 위치를 얻고 부모에게는 위치를 얻지 않습니까?
나는 이것을 cocos2d-x로 번역했고 거의 잘 작동했다. 배경 노드의 위치도 추가해야했다. – nosmirck