Сделать круговой спрайт
У меня есть небольшая и простая игра 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];