从另一个精灵获取精灵的位置

时间:2015-03-29 20:02:18

标签: cocos2d-x

我有2个sprite,spriteA和spriteB,一个添加到HelloWord Layer,另一个添加到节点:

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

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

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

然后我需要将节点移动到spriteB中心,并保持spriteB的spriteA位置:

//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);

但我可以从精灵B中获得spriteA的好位置,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我尝试了这段代码,但它确实有效

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

如果仍然不起作用,可能需要设置节点内容大小和锚定点