在didBeginContact中添加新子项,但是将位置更改为零?

时间:2014-05-13 04:06:10

标签: sprite-kit

我有这样的代码:

    eggSprite *egg = [[eggSprite alloc]init];
    egg.position = CGPointMake(100, 100);
    [self addChild:egg];

如果我把它放在我的更新逻辑中,一切都很好,但如果我把它放在didBeginContact:方法中,这很奇怪,它会添加这个子,但是位置将设置为(0,0),是我不能在didBeginContact:方法中添加节点?或者我做错了什么?

- (void)didBeginContact:(SKPhysicsContact *)contact
{

eggSprite *egg = [[eggSprite alloc]init];
egg.position = CGPointMake(100, 100);

[self addChild:egg];                // <---- after this , the egg's position is change to (0,0) outside this block
}

1 个答案:

答案 0 :(得分:0)

didBeginContact:中添加新节点是错误的做法。而是在didBeginContact:期间将任何新节点添加到MutableArray中,并在周期的update:部分将它们添加到您的世界中。