Ios 制作圆形雪碧

Ios 制作圆形雪碧,ios,shapes,Ios,Shapes,我有一个小而简单的SpriteKit游戏,它基于一个小动画。基本上,每次点击屏幕时,我都希望在被点击的地方长出一个圆形。 我现在有以下代码: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { /* Called when a touch begins */ NSLog(@"Touched the screen"); for (UITouch *touch in touches)

我有一个小而简单的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];
      }
}
问题是轻敲时创建的形状是正方形。有没有办法让它转个圈


还有一件事我正在处理的是颜色。我把颜色调成紫色。完美的做法是,形状的颜色是一组中的随机颜色,但我也不知道如何做到这一点。

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

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

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

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

尝试一个而不是一个SKSpriteNode。看看颜色。@ahruss我花了一些时间阅读了关于shapenode的文章,根本没有简单的方法来创建一个圆,根据我所读的内容,由于一个bug,你不能用颜色填充shapenode。我不确定这些是否正确,我只是说。试着用一个而不是一个SKSpriteNode。看看颜色。@ahruss我花了一些时间阅读了关于shapenode的文章,根本没有简单的方法来创建一个圆,根据我所读的内容,由于一个bug,你不能用颜色填充shapenode。我不确定这些是否正确,我只是说。试着用一个而不是一个SKSpriteNode。看看颜色。@ahruss我花了一些时间阅读了关于shapenode的文章,根本没有简单的方法来创建一个圆,根据我所读的内容,由于一个bug,你不能用颜色填充shapenode。我不确定这些是否正确,我只是说。试着用一个而不是一个SKSpriteNode。看看颜色。@ahruss我花了一些时间阅读了关于shapenode的文章,根本没有简单的方法来创建一个圆,根据我所读的内容,由于一个bug,你不能用颜色填充shapenode。我不确定这些是否正确,我只是说。非常感谢。它确实创造了一个循环,这是伟大的。。我现在注意到的唯一一件事是,当我点击屏幕时,圆圈扩大,其alpha衰减为零,但当这种情况发生时,节点保持在那里,与矩形不同,当第二次完全透明时,节点也会消失。现在游戏以每秒3帧的速度运行,因为这些不会消失。。。。是否对此进行了修复?可能会使您的操作
[SKAction sequence:@[[SKAction group:@[action1,action2]],[SKAction removeFromParent]]
非常感谢。它确实创建了一个圆环,非常棒。我现在注意到的唯一一件事是,当我点击屏幕时,圆圈会扩大,其alpha会衰减为零,但当这种情况发生时,节点会保持在那里,不像矩形那样,当第二次完全透明时,节点也会消失。现在游戏以3 fps的速度运行导致这些问题无法解决的原因…是否对此进行了修复?可能会使您的操作
[SKAction sequence:@[[SKAction group:@[action1,action2]],[SKAction removeFromParent]]
非常感谢。它确实创建了一个圆环,非常棒。我现在注意到的唯一一件事是,当我点击屏幕时,圆圈会扩大,其alpha会衰减为零,但当这种情况发生时,节点会保持在那里,不像矩形那样,当第二次完全透明时,节点也会消失。现在游戏以3 fps的速度运行导致这些问题无法解决的原因…是否对此进行了修复?可能会使您的操作
[SKAction sequence:@[[SKAction group:@[action1,action2]],[SKAction removeFromParent]]
非常感谢。它确实创建了一个圆环,非常棒。我现在注意到的唯一一件事是,当我点击屏幕时,圆圈会扩大,其alpha会衰减为零,但当这种情况发生时,节点会保持在那里,不像矩形那样,当第二次完全透明时,节点也会消失。现在游戏以3 fps的速度运行导致这些问题无法解决的原因…是否对此进行了修复?可能会使您的操作
[SKAction sequence:@[[SKAction group:@[action1,action2]],[SKAction removeFromParent]