2013-09-30 33 views
5

Tôi có thể vẽ hình chữ nhật bằng cách sử dụng SKSpriteNode đơn giản. Nhưng tôi không thể vẽ các loại bản vẽ khác trong nó như Tam giác, Vòng tròn vv với HAI MÀU SẮC TỪ. Có người đề nghị đi với CGPath. Nhưng tôi là người mới và không biết vẽ những thứ phức tạp như vậy. Xin vui lòng bất cứ ai có thể minh họa cách đơn giản để đi với các bản vẽ với MULTICOLOR trong SPRITEKIT. Có nghĩa là phần trên của họ là một màu và phần dưới màu 2. Ngắn gọn hơn để nói rằng Hình dạng được chia thành hai màu cho dù đó là hình sao, hình chữ nhật, hình tam giác hay hình khác. Mọi trợ giúp sẽ được đánh giá cao.Vẽ hình chữ nhật/hình tròn và hình tam giác trong Spritekit với hai màu. . .

Cảm ơn.

Trả lời

8

Bạn có thể sử dụng SKShapeNode để vẽ hình dạng trong bộ công cụ ma, nhưng mỗi SKShapeNode được giới hạn ở một màu đường kẻ (strokeColor) và một màu tô.

Tuy nhiên, bạn có thể tạo lớp con SKNode tùy chỉnh chứa hai SKShapeNodes là trẻ em, mỗi lớp có strokeColors/fillColors khác nhau.

Something như thế này sẽ làm việc cho một SKNode tùy chỉnh mà vẽ một hình vuông với trái và đầu đỏ, phải và phía dưới màu xanh lá cây:

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

Như tôi đã nói rằng bản vẽ sẽ được lấp đầy với hai màu sắc. Làm thế nào tôi có thể điền vào dòng. Đó phải là một trong hai hình chữ nhật hoặc hình khác. Tôi thừa nhận rằng đây là cách để vẽ nhưng tôi chỉ hỏi làm thế nào tôi có thể điền vào nó? – Programmer

+0

Tôi không hiểu ý bạn là gì. Bạn có thể tải lên một hình ảnh về những gì bạn muốn nó trông như thế nào? – Greg

+0

Tôi đã đăng mẫu hình ảnh tại đây. [link] (http://postimg.org/image/je24gs8yv/) – Programmer

Các vấn đề liên quan