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 に答える