У меня есть спрайты, по сути, ядро (родитель) и электрон (ребенок). Я пытаюсь найти способ заставить электрон вращаться вокруг ядра. Я нашел несколько сообщений о перемещении опорных точек, но это, очевидно, связано с текстурой спрайта, а не с самим спрайтом.
Это мой текущий метод инициализации для моего родительского спрайта:
self = [super init];
if (self) {
CCSprite *orbitAnchor = [CCSprite new];
[self addChild:orbitAnchor];
orbitAnchor.position = ccp(32,32);
CCSprite *orbiter = [CCSprite spriteWithFile:@"line.png" rect:CGRectMake(0, 0, 8, 8)];
[orbitAnchor addChild:orbiter];
orbiter.position = ccp(40,40);
CCAction *orbitAction = [CCRepeatForever actionWithAction:[CCRotateTo actionWithDuration:1 angle:720]];
[orbitAnchor runAction:orbitAction];
[self initAnimations];
}
return self;
Хотя эти числа абсолютно произвольны - я просто вставил их туда и получил то, что выглядело лучше всего. Я уверен, что есть более программный способ делать то, что я хочу.
По сути, я ищу способ установить точку оси дочернего элемента в центре родительского элемента, а затем повернуть ее вокруг этой точки. Это кажется относительно простым делом с помощью CCRotate и тому подобного, но я думаю, что мне не хватает того, что искать, чтобы переместить опорную точку ребенка. Любые предложения / другие сообщения?
Спасибо