0

我有一个像素的节点,我想把它放在我知道的(X,Y)位置。但是,我还需要任意移动这个节点的锚点(anchorXanchorY)。

如果我在不考虑锚点的情况下继续添加子节点,则会移动子节点。我试图弥补这种转变,并将节点准确地放在我想要它去的地方。

将节点添加为子节点时,我可以使用什么等式来解释锚点的变化?

到目前为止,我正在使用这样的东西,但我不确定减号。

 node.center =   CGPointMake(X-width*(0.5-anchorX) ,Y-height*(0.5-anchorY));
4

1 回答 1

1

与其想出一个可行的公式,不如将父级的锚点切换回 0.5、0.5,添加子级,然后返回修改后的锚点。

或者您可以放弃所有方程式,只需将任何子对象的锚点设置为与您的父对象相同:

SKSpriteNode *object1 = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(50, 50)];
object1.position = CGPointMake(300, 150);
object1.anchorPoint = CGPointMake(0.1, 0.2);
object1.zRotation = 1;
[self addChild:object1];

SKSpriteNode *object2 = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(50, 50)];
object2.anchorPoint = CGPointMake(object1.anchorPoint.x, object1.anchorPoint.y);
object2.position = CGPointMake(0, 0);
[object1 addChild:object2];

保证工作或退款!:)

于 2014-04-10T00:15:58.843 回答