SKShapeNode在应用比例时不保持中心位置

时间:2014-03-16 19:25:03

标签: objective-c ios7 position sprite-kit skshapenode

我开始开发一款游戏了,片刻之后我需要展示一个增加其大小的圆圈,我知道了,但问题是它会增加它的大小并改变它的位置并最终从屏幕上消失。我希望它保持其初始位置,并从最初的中心增加它的大小。

我的代码如下:

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

有什么想法吗?

比你多!

1 个答案:

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

圆圈现在应该从中心向上扩展。希望这有效!