2013-09-30 19 views
5

シンプルなSKSpriteNodeを使ってRectangleを描くことができます。しかし、私はトライアングル、サークルなどの2つの分割カラーで他の種類の描画を描画することはできません。誰かがCGPathに行くことを提案しました。しかし、私は初心者であり、複雑な種類のそのようなタイプを描くのを知らない。誰でもSPRITEKITのMULTICOLORでこれらの図面に行く簡単な方法を説明できますか?それらの上部は第2色では1色と下部であることを意味する。より簡潔に言えば、Shapeは星型、長方形型、三角形などの2つの色に分かれています。 ご協力いただければ幸いです。2色のSpritekitで四角形/円と三角形を描画します。 。 。

ありがとうございました。

答えて

8

あなたはスプライトキット内の図形を描画するためにSKShapeNodeを使用することができますが、各SKShapeNodeは、1つのラインの色(strokeColor)と1つの塗りつぶしの色に制限されています。

しかし、あなたは子供のように2 SKShapeNodes、異なるstrokeColors/fillColorsの各を含むカスタムSKNodeサブクラスを作成することができます。私は描画が2色で満たされることを言ったように

- (id) init { 
    if (self = [super init]) { 
     SKShapeNode* topLeft = [SKShapeNode node]; 
     UIBezierPath* topLeftBezierPath = [[UIBezierPath alloc] init]; 
     [topLeftBezierPath moveToPoint:CGPointMake(0.0, 0.0)]; 
     [topLeftBezierPath addLineToPoint:CGPointMake(0.0, 100.0)]; 
     [topLeftBezierPath addLineToPoint:CGPointMake(100.0, 100.0)]; 
     topLeft.path = topLeftBezierPath.CGPath; 
     topLeft.lineWidth = 10.0; 
     topLeft.strokeColor = [UIColor redColor]; 
     topLeft.antialiased = NO; 
     [self addChild:topLeft]; 

     SKShapeNode* bottomRight = [SKShapeNode node]; 
     UIBezierPath* bottomRightBezierPath = [[UIBezierPath alloc] init]; 
     [bottomRightBezierPath moveToPoint:CGPointMake(0.0, 0.0)]; 
     [bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 0.0)]; 
     [bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 100.0)]; 
     bottomRight.path = bottomRightBezierPath.CGPath; 
     bottomRight.lineWidth = 10.0; 
     bottomRight.strokeColor = [UIColor greenColor]; 
     bottomRight.antialiased = NO; 
     [self addChild:bottomRight]; 
    } 
    return self; 
} 
+0

:このような

何かが左と赤の上、右と緑の下で四角形を描画するカスタムSKNodeのために動作します。どのように線を塗ることができますか?これは、矩形または他のいずれかでなければなりません。私はこれが絵を描く方法であることを認めていますが、私はそれをどのように埋めることができるのか尋ねています。 – Programmer

+0

あなたは何を意味するのか分かりません。あなたはそれを見たいものの写真をアップロードできますか? – Greg

+0

ここに画像サンプルを掲載しました。 [link](http://postimg.org/image/je24gs8yv/) – Programmer

関連する問題