私は Apple の新しい Sprite Kit を掘り下げていて、しばらくの間それを使用しています。ただし、 の曲線パスを描画しようとすると、問題が発生しましたSKShapeNode
。代わりに直線を描いているように見えます。
これは私が抱えている問題の非常に簡単な例です - のCGPath
ためにa を描くことを試してい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 のバグですか?