我正在尝试制作一个父子精灵节点,并将纹理/动画和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;
}
答案 0 :(得分:0)
您需要创建一个普通的SKNode并分配它:
_arrowParentNode = [SKNode node];
还将变量声明从SKSpriteNode更改为:
SKNode* _arrowParentNode;