我一直在研究苹果新的 Sprite Kit,并且已经使用它有一段时间了。
然而,当我尝试绘制曲线路径时遇到了问题SKShapeNode
。它看起来只是画一条直线。
这是我遇到的问题的一个非常简单的例子 - 尝试绘制一个CGPath
for an 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 的一个错误?