我开始开发一款游戏了,片刻之后我需要展示一个增加其大小的圆圈,我知道了,但问题是它会增加它的大小并改变它的位置并最终从屏幕上消失。我希望它保持其初始位置,并从最初的中心增加它的大小。
我的代码如下:
CGRect circle = CGRectMake(skRand(0, self.size.width), skRand(0, self.size.height), 20, 20);
SKShapeNode *shapeNode = [[SKShapeNode alloc] init];
shapeNode.position = CGPointMake(skRand(0, self.size.width), skRand(0, self.size.height));
shapeNode.path = [UIBezierPath bezierPathWithOvalInRect:circle].CGPath;
shapeNode.fillColor = [SKColor blueColor];
shapeNode.strokeColor = nil;
[self addChild:shapeNode];
SKAction* zoom = [SKAction scaleTo:15.0 duration:10.0];
[shapeNode runAction:zoom];
有什么想法吗?
比你多!
答案 0 :(得分:3)
如果您希望圆圈从中心增加尺寸,请尝试使用CGRectMake
构建圆圈,而不是使用CGMutablePathRef
,制作路径并将圆圈的路径设置为您创建的圆圈。我的游戏中有类似的东西,这对我有用:
SKShapeNode *turnSphere = [[SKShapeNode alloc] init];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, 0, 0, 30, 0.0, (2 * M_PI), NO);
turnSphere.path = path;
turnSphere.position = CGPointMake(220, 440);
[self addChild:turnSphere];
[turnSphere runAction:[SKAction scaleBy:3 duration:2]];
圆圈现在应该从中心向上扩展。希望这有效!