这是一种不同的方法,但您可以做的是:
- 创建容器 SKNode
- 创建一个 SKNode ,将其命名为 spriteGroup 或类似的名称,并添加您想要以您描述的方式连接到该节点的任何精灵。
- 将 spriteGroup 添加到 containerNode。
- 将 spriteGroup 居中于容器节点的 0,0 位置。例如,如果 spriteGroup 的宽度是 100 并且它的高度是 100 ,你会希望它的位置是 -50,-50。
现在您可以旋转/缩放/移动容器并实现所需的功能。
这是一个例子:
SKNode *container = [[SKNode alloc]init];
SKNode *group = [[SKNode alloc]init];
for (int index = 0;index < 4;index++)
{
SKSpriteNode *sprite = [[SKSpriteNode alloc]initWithImageNamed:@"santa.png"];
sprite.anchorPoint = CGPointMake(0, 0);
sprite.position = CGPointMake(index * 100, 0);
[group addChild:sprite];
}
CGRect groupRect = [group calculateAccumulatedFrame];
group.position = CGPointMake(-groupRect.size.width/2, -groupRect.size.height/2);
[container addChild:group];
[self addChild:container];
container.position = CGPointMake(512, 384);
container.xScale = .5;
container.yScale = .5;
container.zRotation = 45 * M_PI /180;