2013-09-30 2 views
5

Я могу нарисовать прямоугольник, используя простой SKSpriteNode. Но я не могу рисовать в нем другие типы рисунков, такие как Triangle, Circle и т. Д. С TWO SPLIT COLORS. Кто-то предложил пойти с CGPath. Но я новичок и не знаю, как рисовать такие сложные вещи. Пожалуйста, кто-нибудь может проиллюстрировать простой способ работы с этими рисунками с MULTICOLOR в SPRITEKIT. Средняя их верхняя часть - один цвет и нижняя часть второго цвета. Более кратким сказать, что Shape разделен на два цвета, будь то звезда, прямоугольник, треугольник или еще. Любая помощь будет принята с благодарностью.Рисовать прямоугольник/круг и треугольник в Spritekit с двумя цветами. , ,

Спасибо.

ответ

8

Вы можете использовать SKShapeNode для рисования фигур в наборе спрайтов, но каждый SKShapeNode ограничен одним цветом линии (strokeColor) и одним цветом заливки.

Однако вы можете создать пользовательский подкласс SKNode, содержащий два SKShapeNodes в качестве дочерних, каждый с разными цветами strokeColors/fillColors.

Что-то, как это будет работать для пользовательского SKNode, которая рисует квадрат с левой и верхней красной, справа и снизу зеленый:

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

Как я уже говорил, что рисунок будет заполнен двумя цветами. Как я могу заполнить строки. Это должно быть как раз из прямоугольника или другого. Я признаю, что это способ сделать рисунок, но я просто спрашиваю, как я могу его заполнить? – Programmer

+0

Я не знаю, что вы имеете в виду. Можете ли вы загрузить изображение того, что вы хотите, чтобы оно выглядело? – Greg

+0

Я разместил здесь образец изображения. [link] (http://postimg.org/image/je24gs8yv/) – Programmer

 Смежные вопросы

  • Нет связанных вопросов^_^