制作一个圆形精灵

时间:2014-07-24 21:58:02

标签: ios shapes

我有一个基于小动画的小而简单的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 个答案:

答案 0 :(得分:2)

正如我在评论中提到的,这可以通过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];