2015-03-29 2 views
0

я 2 спрайтов, spriteA и spriteB, один добавляется к HelloWord слоем, а другой добавлен к узлу:получить позицию спрайта из другого спрайта

node = Node::create(); 
this->addChild(node); 

spriteA = Sprite::create("spriteA.png"); 
node->addChild(spriteA); 

spriteB = Sprite::create("spriteB.png"); 
this->addChild(spriteB); 

Затем мне нужно переместить узел центр spriteB, и держать позицию spriteA от spriteB:

//get screen position of spriteA and (maybe not) position of spriteA from spriteB 
Vec2 point = center->convertToWorldSpace(spriteA->getPosition()); 
Vec2 position = Vec2(point.x - SpriteB->getPositionX(), point.y - spriteB->getPositionY()); 

node->setPosition(spriteB->getPosition()); 
spriteA->setPosition(position); 

Но я могу получить хорошую позицию spriteA из spriteB, кто-то может помочь, пожалуйста?

ответ

0

я попробовал этот код, и он работает

auto posB = spriteB->getPosition(); 
auto posA = spriteA->getPosition(); 
auto dis = node->getPosition() - posB; 
node->setPosition(posB); 
spriteA->setPosition(posA + dis); 

, если до сих пор не работает, возможно, вам необходимо установить contentsize узла и anchorpoint

Смежные вопросы