我一直在钻研Apple的新Sprite Kit,并且已经使用了一段时间了.然而,当我试图为一个弯曲的路径绘制时,我遇到了一个问题SKShapeNode
.它似乎只是绘制一条直线.
这是我遇到的一个非常简单的例子 - 试图绘制CGPath
一个SKShapeNode
:
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(...)
,而且,CGPathAddCurveToPoint(...)
- 它们只是在点之间绘制一条直线.
有谁知道问题是什么?或者这是Sprite Kit的错误?