2014-02-15 78 views
0

我有兩個SKNode對象。碰撞時他們的位置發生變化。保持SKNodes不會互相施加力

我該如何預防?同時,我仍然希望能夠通過- (void)didBeginContact與他們聯繫;

我試圖將他們的mass財產設置爲0.0f但這並不奏效。

回答

2

您可以通過設置類別,碰撞和接觸位掩碼來實現。

uint32_t bodyABitMask = 1<<0; 
uint32_t bodyBBitMask = 1<<1; 

//A mask that defines which categories this physics body belongs to. 
[bodyA setCategoryBitMask:bodyABitMask]; 
[bodyB setCategoryBitMask:bodyBBitMask]; 

//A mask that defines which categories of physics bodies 
//can collide with this physics body. 
[bodyA setCollisionBitMask:0]; 
[bodyB setCollisionBitMask:0]; 

//A mask that defines which categories of bodies cause 
//intersection notifications with this physics body. 
[bodyA setContactTestBitMask:bodyBBitMask]; 
[bodyB setContactTestBitMask:bodyABitMask]; 

在上面的案例中,bodyA和bodyB不會發生衝突,但是一旦他們聯繫,您將收到didBeginContact。

+0

太棒了!我正在尋找'collisionBitMask'屬性。謝謝! –