Сделать круговой спрайт

У меня есть небольшая и простая игра SpriteKit, которая основана на небольшой анимации. По сути, каждый раз, когда нажимают на экран, я хочу, чтобы из места касания вырастала круглая форма. Теперь у меня есть следующий код:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    /* Called when a touch begins */

      NSLog(@"Touched the screen");

      for (UITouch *touch in touches) {
           CGPoint location = [touch locationInNode:self];

            ///NSLog(@"Location X is %f", location.x);
            //NSLog(@"Location Y is %f", location.y);

           SKSpriteNode*  sprite = [SKSpriteNode spriteNodeWithColor:[SKColor purpleColor] size:CGSizeMake(25, 25)];

           sprite.position = location;

           SKAction *action = [SKAction scaleBy:10 duration:0.5];
           SKAction *newaction = [SKAction fadeAlphaTo:0 duration:0.5];

           [sprite runAction:action];
           [sprite runAction:newaction];

           [self addChild:sprite];
      }
}

Дело в том, что форма, которая создается при нажатии, является квадратом. Есть ли способ сделать это кругом?

Еще одна вещь, с которой я имею дело, это цвет. Я установил цвет на фиолетовый. То, что было бы идеально, это цвет фигур, которые кажутся случайным цветом в группе, но я тоже не знаю, как это сделать.

1 ответ

Решение

Как я уже упоминал в комментарии, это возможно с помощью SKShapeNode.

    UIBezierPath* path = [UIBezierPath bezierPathWithArcCenter:CGPointZero
                                                        radius: 50
                                                    startAngle: 0
                                                      endAngle: M_PI * 2
                                                     clockwise: true];
    SKShapeNode* circle = [SKShapeNode node];
    circle.path = path.CGPath;
    circle.lineWidth = 0;
    circle.fillColor = [UIColor redColor];
Другие вопросы по тегам