2015-09-16 27 views
0

是否有可能檢測到接觸並讓物體通過另一個物體?因爲我想在他們相互傳遞時增加一個變量。當兩個物理實體都是動態sprite套件物鏡時檢測接觸c

我做了兩個phyisicsbodies動態,然後他們通過,但didBeginContact不工作了呢。

感謝

編輯:

好了,所以一切工作的時候,我沒有動屍體。我有一個BottomEdgeBody,用於檢測下雨的石頭何時通過我的玩家,然後增加Score。所以,如果沒有什麼是動態的,我的寶石會停留在底部邊緣的頂部,但我希望它們能夠穿透底部邊緣。

一些代碼:

在didBeginContact

if(contact.bodyA.categoryBitMask == bottomEdgeCategory) 
{ 
    self.scoring = self.scoring +1; 
    [self.scoreLabel setText:[NSString stringWithFormat:@"Score: %ld", (long)self.scoring]]; 
} 
if(contact.bodyB.categoryBitMask == bottomEdgeCategory) 
{ 
    self.scoring = self.scoring +1; 
    [self.scoreLabel setText:[NSString stringWithFormat:@"Score: %ld", (long)self.scoring]]; 

} 

如果我使stone.physicsBody.dynamic = NO;對於bottomEdge也是一樣,他們自己傳球,但得分不再增加。

+1

不知道我完全理解「didBeginContact」不工作了的部分。」難道你知道如何正確設置類別,接觸和碰撞位掩碼是否已經設置physicsWorld.delegate正確的某些代碼將是有益的。還記得;???) – Whirlwind

+0

我編輯我的職務,我希望這是可以理解的 – Robin

+1

如果你想註冊接觸,至少有一個身體必須是動態的,這就是爲什麼分數沒有增加,所以,如果我理解你的話,你想註冊接觸而沒有碰撞身體?如果是這樣的話,只需設置physicsBody.collisionBitMask = 0在兩個身體上。 – Whirlwind

回答

1

好的謝謝你,我只是解決了石材和BottomEdge碰撞位掩碼爲0,那麼它工作正常