iOS7 Sprite Kit如何在锚点更改时计算节点位置?

时间:2014-04-09 23:35:28

标签: objective-c ios7 geometry sprite-kit skspritenode

我有宽度的节点高度像素,我想把它放在我知道的(X,Y)位置。但是,我还需要任意移动此节点的锚点( anchorX anchorY )。

如果我继续添加子节点而不考虑锚点,则移动子节点。我试图弥补这种转变并将节点准确地放在我希望的位置。

在将节点添加为子节点时,我可以使用哪个等式来解释定位点变化?

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

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

1 个答案:

答案 0 :(得分: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];

保证工作或退款! :)