繁体   English   中英

将两个Sprite节点添加到父节点会导致应用崩溃

[英]Adding two sprite nodes to parent node causes app to crash

我有一个简单的Sprite-kit游戏,在其中我在父节点上运行一个动作(移动一个步骤):

SKSpriteNode *firstNode = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(100, 100)];
firstNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:firstNode.size];
firstNode.physicsBody.dynamic = YES;
firstNode.position = CGPointMake(100, 100);
[self addChild:firstNode];

SKSpriteNode *secondNode = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(100, 100)];
secondNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:secondBlock.size];
secondNode.physicsBody.dynamic = YES;
secondNode.position = CGPointMake(200, 200);
[self addChild:secondNode];

SKSpriteNode *parentNode = [SKSpriteNode node];

[parentNode addChild:firstNode];
[parentNode addChild:secondNode];

SKAction *moveOneStep = [SKAction moveBy:CGVectorMake(100,  0) duration:.1];

[parentNode runAction:moveOneStep];

但是将firstNode作为子节点添加到parentNode会导致应用程序崩溃!

谁能告诉我我的代码有什么问题吗?

谢谢,

阅读Xcode控制台中的错误消息。 它将按照“试图添加具有现有父级的节点”的方式进行说明。

将其分解为相关代码,这是非法的:

[self addChild:firstNode];
[self addChild:secondNode];

[parentNode addChild:firstNode];
[parentNode addChild:secondNode];

一个节点不能是两个父母的孩子。 您必须确定它们应该是self还是parentNode子代。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM