1

スプライトキットを使用しています。次の Core Graphics コードを含む形状があります。

CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, 300, 300);
CGPathAddLineToPoint(pathRef, NULL, 400, 300);
CGPathAddCurveToPoint(pathRef, NULL, 400, 335.727, 380.94, 368.739, 350, 386.603);
CGPathCloseSubpath(pathRef);

CGContextSetRGBFillColor(ctx, 1, 1, 1, 1);
CGContextAddPath(ctx, pathRef);
CGContextFillPath(ctx);

CGContextSetLineWidth(ctx, 1);
CGContextSetRGBStrokeColor(ctx, 0, 0, 0, 1);
CGContextAddPath(ctx, pathRef);
CGContextStrokePath(ctx);

CGPathRelease(pathRef);

SKShapeNode に追加すると、塗りつぶしと線の色が失われることに気付きました。また、このオブジェクトをスケーリングすると、ベクターではなく SpriteNode のように扱われることにも気付きました。

SKShapeNode のストローク、塗りつぶし、ストローク幅、lineCap などを調整できることは知っています。

私は両方の世界の最高のものを望みます。塗りつぶしとストロークを含む完全な形状を CoreGraphics から SKNode に取得して、それを変換してマウス クリック イベントを受け取るにはどうすればよいでしょうか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

Core Graphics プロパティは無視され、シェイプ ノードのプロパティのみが適用されます。

SKShapeNode は基本的にパスをテクスチャにレンダリングするだけなので、シェイプ ノードはスプライトと同じです。

これがまさにその方法です。レンダリング パフォーマンスを向上させるために一部の機能をトレードします。

于 2014-11-13T01:18:32.500 に答える