Ios 如何使用CGPathRef创建圆弧对象

Ios 如何使用CGPathRef创建圆弧对象,ios,core-graphics,sprite-kit,Ios,Core Graphics,Sprite Kit,在我的iOS游戏中,我尝试沿路径移动对象(见下文): 我想把上面的三角形移到盒子的底部 但是我不知道如何很好地使用CGPathRefs。以下是我正在尝试的: CGMutablePathRef path = CGPathCreateMutable(); CGPathAddArc(path, NULL, 20, 0, 20, 0, M_PI/2, NO); SKAction *moveTriangle = [SKAction followPath:path asOffset:YES orientT

在我的iOS游戏中,我尝试沿路径移动对象(见下文):

我想把上面的三角形移到盒子的底部

但是我不知道如何很好地使用CGPathRefs。以下是我正在尝试的:

CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, 20, 0, 20, 0, M_PI/2, NO);
SKAction *moveTriangle = [SKAction followPath:path asOffset:YES orientToPath:YES duration:1.0];
[self.triangle runAction:moveTriangle];

我不断得到奇怪的结果。有人能帮我调整路径以匹配上面的图像吗?谢谢

使用原型的想法

     // will arc around this sprite for demo
    SKSpriteNode *boxOrange = [SKSpriteNode spriteNodeWithColor:[UIColor orangeColor] size:CGSizeMake(30, 30)];
    boxOrange.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
    [self addChild:boxOrange];

    SKSpriteNode *heroSprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(70, 70)];
    CGFloat offeset = 150; // change as required, ie bring hero closer to rotn point
    heroSprite.position = CGPointMake(-offeset, heroSprite.position.y);
    SKSpriteNode *guideContainer = [SKSpriteNode spriteNodeWithColor:[SKColor purpleColor] size:CGSizeMake(3, 3)];
    // for full effect - change guide container to clearColor
    // otherwise good for seeing where rotation point will occur
    [guideContainer addChild:heroSprite];

    [self addChild:guideContainer];
    guideContainer.position = boxOrange.position;

    [guideContainer runAction:[SKAction rotateToAngle:1.57 duration:3.0 shortestUnitArc:YES]];
    // just found shortestUnitArc action .. this will be handy for at times

提示:向SKShapeNode输入生成的路径,以便在屏幕上绘制它。它可以非常有助于查看路径创建的任何更改的结果。根据您尝试执行的操作,您可以将三角形节点的定位点设置为与正方形的中心点匹配,然后旋转。这样做似乎比创建路径容易得多。就路径而言,您得到的奇怪结果是什么?有助于了解正在发生的事情。奇怪的结果是模糊的。