2013-09-30 20 views
5

Posso disegnare rettangolo usando il semplice SKSpriteNode. Ma non posso disegnare altri tipi di disegni come Triangolo, Cerchio ecc. Con DUE COLORI SPLIT. Qualcuno ha suggerito di andare con CGPath. Ma io sono novizio e non so disegnare questo tipo di cose complesse. Per favore qualcuno può illustrare un modo semplice per andare con questi disegni con MULTICOLOR in SPRITEKIT. Significa che la loro parte superiore è un colore e la parte inferiore in 2 ° colore. Più conciso dire che Shape è diviso in due colori, sia che sia stella, rettangolo, triangolo o altro. Qualsiasi aiuto sarà molto apprezzato.Disegna rettangolo/cerchio e triangolo in Spritekit con due colori. . .

Grazie.

risposta

8

È possibile utilizzare SKShapeNode per disegnare forme nel kit sprite, ma ogni SKShapeNode è limitato a un colore di linea (strokeColor) ea un colore di riempimento.

Tuttavia, è possibile creare una sottoclasse SKNode personalizzata che contenga due SKShapeNodes come figli, ciascuno con diversi strokeColors/fillColors.

Qualcosa di simile a questo lavoro per uno SKNode personalizzato che disegna un quadrato con sinistra e top rosso, a destra e in basso a verde:

- (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

Come ho già detto che il disegno sarà riempito con due colori. Come posso riempire le linee. Deve essere una volta del rettangolo o altro. Riconosco che questo è il modo di disegnare ma sto solo chiedendo come posso riempirlo? – Programmer

+0

Non so cosa intendi. Puoi caricare un'immagine di ciò che vuoi che assomigli? – Greg

+0

Ho pubblicato l'immagine campione qui. [link] (http://postimg.org/image/je24gs8yv/) – Programmer