Sprite Kit – SKShapeNodepath不绘制四曲线

我一直在研究苹果新的Sprite Kit,并且一直在使用它。 然而,当我试图绘制一个SKShapeNode的曲线path时遇到了一个问题。 它似乎只是画一条直线。

这是一个非常简单的例子,我正在尝试绘制一个CGPathSKShapeNode

  CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, 0, 0); CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0); CGPathAddLineToPoint(path, NULL, 50, -100); CGPathCloseSubpath(path); SKShapeNode *shape = [[SKShapeNode alloc]init]; shape.path = path; [self addChild:shape]; CGPathRelease(path); 

这是我的ASCII艺术(对不起,我没有足够的声望发布一个实际的图像呢):

 --------------------------------------------------------------------------------- | EXPECTED RESULT | ACTUAL RESULT | --------------------------------------------------------------------------------- | | | | __----__ | | | / \ <- Curve | ? | | / \ | ____________ | | \ / | \ / | | \ / | \ / | | \ / | \ / | | \ / | \ / | | \ / | \ / | | \/ | \/ | --------------------------------------------------------------------------------- 

正如你所看到的,它不是从这一行代码中绘制出我想要的曲线:

 CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0); 

我曾尝试使用CGPathAddArcToPoint(...) ,它工作,并将在这个例子中很好的替代品。 但是,对于我的实际需要,我需要能够绘制一条四条曲线。

CGPath似乎正在绘制除CGPathAddQuadCurveToPoint(...)CGPathAddQuadCurveToPoint(...)之外的所有东西,而它们只是在点之间绘制了一条直线。

有谁知道这个问题是什么? 或者这是一个Sprite套件的错误?

那个“y”应该是曲线的高度,尝试给它一个非零值。 通过给出坐标,它不能知道曲线应该多么陡峭。 这就是高度

 CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 30);