我有这样的代码:
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
}
答案 0 :(得分:0)
在didBeginContact:
中添加新节点是错误的做法。而是在didBeginContact:
期间将任何新节点添加到MutableArray中,并在周期的update:
部分将它们添加到您的世界中。