Я пытаюсь переместить спрайт с узла «съемки» на сцену до динамической, но известной точки на сцене, используя дугу.Переместить спрайт вдоль дуги, используя UIBezierPath
Для контекста это игра обороны башни, и это «ступка» башни.
Я использую SpriteKit и Objective-C. Я относительно новичок в кодировании, но я довольно далеко позади, поэтому я хорошо разбираюсь в вещах, это было очень давно, поскольку я использовал тригонометрию, и я страдаю UIBezierPath.
Вот отрывок из моего кода:
CGPoint cannonPointOnScene = [self.scene convertPoint:self.position fromNode:self.parent];
CGPoint originPoint = CGPointMake(realDest.x - cannonPointOnScene.x, realDest.y - cannonPointOnScene.y);
float angle = atan2f(originPoint.y, originPoint.x);
UIBezierPath *testPath = [[UIBezierPath alloc] init];
[testPath addArcWithCenter:CGPointMake(self.position.x , self.position.y) radius:10.0 startAngle:0.0 endAngle:angle clockwise:YES];
SKAction *actionMove = [SKAction followPath:[testPath CGPath] speed:self.projectileSpeed];
SKAction * actionMoveDone = [SKAction removeFromParent];
SKAction* fire = [SKAction sequence:@[actionMove, actionMoveDone]];
Используя этот код, я просто получить мой снаряд появляясь в одном месте, достаточно далеко от узла башни, а затем удаляется со сцены.
Заранее благодарен!
Что вы имеете в виду, вращаясь вокруг в одном месте? Спрайт просто вращается на месте? он делает любую дугу? – hamobi
Нулевой движения дуги. Снаряд добавлен в сцену довольно далеко от съемочного узла и вообще не движется. Редактирование оригинала, поскольку слово spinning вводит в заблуждение. – Revick
Я видел что-то подобное в видео WWDC, 'CGPathRef p = [SKShapeNode shapeNodeWithSplinePoints: количество очков: len]; [node runAction: [SKAction followpath: p]; –