SKSpritenode,父节点和子节点关系

时间:2014-05-15 08:07:12

标签: sprite-kit skspritenode

我正在尝试制作一个父子精灵节点,并将纹理/动画和xScale添加到子节点&& 34; physicsBody"到父(父作为仅包含物理主体的包装器?)

目前我只有SKSpritenode *arrowParentNode;,这给了我以下错误:

"Attempted to add nil node to parent".

贝娄是代码。如果纹理和动画在孩子身上,我不知道父母会发生什么? 我不确定我是否正确行事,有人可以解释一下吗?

我也试过_arrowParentNode = [ self arrowChildNode ]; 重新进入场景后,这给了我以下错误:

Attempted to add a SKNode which already has a parent. 

它也没有解决我最初遇到的与this link类似的问题。

提前致谢。

SKSpritenode *arrowParentNode;
.
..
...

-(void) arrowParentNode {

   // _arrowParentNode = [ ? ] //  <-- what goes in here if the textures are in within the child? 
    _arrowParentNode.anchorPoint = CGPointMake(0.2, 0.75);
    _arrowParentNode.physicsBody=[SKPhysicsBody bodyWithRectangleOfSize:_brick.size];
    _arrowParentNode.physicsBody.dynamic =NO;
    _arrowParentNode.physicsBody.affectedByGravity=YES;
    _arrowParentNode.physicsBody.collisionBitMask = pengCategory;
    _arrowParentNode.physicsBody.contactTestBitMask = chickenCategory;
    [self addChild:_arrowParentNode];

}

- (SKSpriteNode *) arrowChildNode {
   SKSpritenode * arrowTexture = [[SKSpriteNode alloc] initWithImageNamed:ARROW_SPR_ARROW0001];

    SKAction *sharkOCAnimation = [SKAction animateWithTextures:ARROW_ANIM_BALL timePerFrame:0.02];

    SKAction *scaleBall = [SKAction scaleTo:-1 duration:0];

    [_arrowParentNode addChild:_arrowTexture];

    return _arrowTexture;
}

1 个答案:

答案 0 :(得分:0)

您需要创建一个普通的SKNode并分配它:

_arrowParentNode = [SKNode node];

还将变量声明从SKSpriteNode更改为:

SKNode* _arrowParentNode;