我有一个基于小动画的小而简单的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];
}
}
问题是,点击时创建的形状是正方形。有什么方法可以让它成为一个圆圈吗?
我正在处理的另一件事是颜色。我将颜色设置为紫色。什么是完美的是形状的颜色看起来是一个组中的随机颜色,但我不知道如何做到这一点。
答案 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];