2014-11-21 33 views
0

很抱歉,如果是没有意义的SKNode一个节点上的路径,这里的代码示例块:使用SKAction遵循对移动不起作用

Scene.m

self.anchorPoint = CGPointMake(0.5, 0); 
    background = [SKSpriteNode spriteNodeWithImageNamed:@"background.png"]; 
    center = [SKSpriteNode spriteNodeWithImageNamed:@"center.png"]; 

    [self addChild:background]; 
    [background addChild:center]; 

    float xpos = 0; 
    float ypos = 20*20; 

    SKShapeNode *block = [SKShapeNode shapeNodeWithRect:CGRectMake(xpos, ypos, 20, 20)]; 
    block.fillColor = [SKColor blueColor]; 
    block.name = @"block"; 

    [background addChild:block]; 

    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path, NULL, xpos, ypos); 
    CGPathAddCurveToPoint(path, NULL, 0, 0, xpos + 100, ypos/2, 0, 0); 

    SKAction *followline = [SKAction followPath:path asOffset:YES orientToPath:YES duration:10]; 
    [block runAction:followline]; 

会发生什么情况是路径在屏幕下半部分的背景图像的其余部分。这是一个主要问题,一个职位问题?如果我旋转背景节点,所有事情都搞砸了,但即使在这种简单的情况下,路径并不像我预期的那样工作。

回答

0

您可以将路径后面的节点添加为移动的另一个节点的子节点。应用程序中的节点未遵循预期路径的原因是这是一个SKShapeNode,它不适用于followPathSKAction s。如果将形状节点更改为SKSpriteNode,则节点将按照预期的方式跟随路径。