2014-03-30 29 views
1

我的SKSpriteNode沿着逆时针方向的这条路径,我该如何使它沿着顺时针方向方向的路径?SKAction沿顺时针方向循环CGPathRef

在此先感谢!

CGPathRef circle = CGPathCreateWithEllipseInRect(CGRectMake(0,0,50,50), NULL); 

    SKAction *followTrack = [SKAction followPath:circle asOffset:YES orientToPath:YES duration:5.0]; 

    SKAction *forever = [SKAction repeatActionForever:followTrack]; 

    [player2 runAction:forever]; 

回答

6

代替CGPathCreateWithEllipseInRect(),使用CGPathCreateMutable()CGPathAddArc()创建圆路径并使用clockwise参数来控制 方向。

未经测试的代码:

CGMutablePathRef circle = CGPathCreateMutable(); 
CGPathAddArc(circle, NULL, 25, 25, 25, 0, 2*M_PI, true); 
CGPathCloseSubpath(circle); 
+0

Thanks Ma rtin,你能提供一些代码吗? – user1216855

+1

@ user1216855:查看更新后的答案,我希望它能起作用! –

+0

谢谢马丁,它完美的作品! – user1216855

0

从马丁的回答了几个变化导致的对象开始,并在同一个地方结束:

在Objective C中

CGMutablePathRef circle = CGPathCreateMutable(); 
CGPathAddArc(circle, NULL, -25, 0, 25, 0, 2*M_PI, true); 
CGPathCloseSubpath(circle); 

在迅速

let path = CGPathCreateMutable() 
CGPathAddArc(path, nil, -25, 0, 25, 0, CGFloat(2.0 * M_PI), true) 
CGPathCloseSubpath(path)