-1
我有一個代碼是這樣的:在didBeginContact中添加新的孩子,但是位置更改爲零?
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
}
當兩個SKPhysicsBody實例相互碰撞並用於實現碰撞檢測時,會調用didBeginContact方法。我認爲你要找的是-touchesBegan:方法。 – ZeMoon
是的,我知道。但我的邏輯是,當碰撞時,然後做一些創建節點並添加到場景中,而不僅僅是觸摸添加。 – user1644055
所以問題是,-didBeginContact方法沒有被調用? – ZeMoon