1

我开始开发一个游戏,一会儿我需要显示一个增加它的大小的圆圈,我明白了,但问题是它增加了它的大小并改变了它的位置,最后从屏幕上消失了。我希望它保持在初始位置并从初始中心增加其大小。

我的代码如下:

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];

有任何想法吗?

比你好多了!

4

1 回答 1

3

如果您希望您的圆从中心增加大小,请尝试不使用构建圆,CGRectMake而是使用 a 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]];

圆圈现在应该从中心放大。希望这有效!

于 2014-03-16T20:20:07.950 回答