Я переезжаю мой sknode по кругу, созданный с помощью этого кода:Перемещение SKNode по кругу
circleDiameter = 300;
pathCenterPoint = CGPointMake(self.position.x - circleDiameter/2, self.position.y - circleDiameter/2);
UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(pathCenterPoint.x, pathCenterPoint.y, circleDiameter, circleDiameter) cornerRadius:circleDiameter/2];
self.actionClockwise = [SKAction followPath:circlePath.CGPath asOffset:false orientToPath:true duration:2];
self.circleActionForever = [SKAction repeatActionForever:self.actionClockwise];
[self runAction:self.actionCounterClockwise withKey:@"circleActionForever"];
И все работает. Теперь я хочу, чтобы, когда пользователь коснулся экрана, чтобы вернуть направление и переместить узел в counterClockwise. Я сделал это, выполнив одно и то же действие с командой .reversedAction.
Но действие всегда перезапускается с начальной точки.
Я хочу знать, есть ли какой-то метод, чтобы начать анимацию с точки, где старая анимация, когда пользователь нажимает на экран?
, но как я могу получить все элементы из круга? и какие точки следует вставлять внутри bezierPoints? –
Вы должны использовать CGPathAddArc, проверьте этот ответ для получения дополнительной информации: http: //stackoverflow.com/questions/5183785/how-to-draw-a-circle-starting-at-the-top –
@Paulo Furlan, или вы только что установили asOffset = true – Knight0fDragon