UIKit 和 SpriteKit 添加 UIBezierPath 的不同结果

Different results of adding UIBezierPath in UIKit and SpriteKit

我正在尝试使用 SKShapeNode 向我的 SpriteKit 场景添加弧线。如果我用 UIView 画一条弧线,比如:

- (void)drawRect:(CGRect)rect {
    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)) radius:64.0f startAngle:0 endAngle:M_PI*4/3 clockwise:YES];
    [[UIColor greenColor] setStroke];
    path.lineWidth = 2.0f;
    [path stroke];
}

我得到以下信息:

我得到了我所期望的。如果我通过 SKScene 绘制类似的弧线,例如:

- (void)createCircle {
    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointZero radius:128.0f startAngle:0 endAngle:M_PI*4/3 clockwise:YES];
    SKShapeNode *ring = [SKShapeNode shapeNodeWithPath:path.CGPath];
    ring.name = @"ring";
    ring.lineWidth = 20;
    ring.strokeColor = [SKColor magentaColor];
    ring.position = CGPointMake(CGRectGetMidX(self.view.bounds),CGRectGetMidY(self.view.bounds));
    [self.scene addChild:ring];
}

我得到以下图片。这不是我希望看到的。它逆时针旋转。为什么我没有得到像第一张图片那样的弧线?我需要翻转轴还是什么?如果重要的话,我的开发目标是 iOS 8.4。

UIKit和SpriteKit中的2D坐标系不同

要实现相同的圆弧,修改path

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointZero radius:128.0f startAngle:0 endAngle:-M_PI*4/3 clockwise:NO];