2014-09-29 2 views
0

다른 SKSpriteNode와 충돌하여 튀는 SKSpriteNode가 있습니다. 내가 원하는 건 충돌을 감지 할 수는 있지만 충돌을 일으키지 않는 것입니다. 나는 다른 노드에서 튀어 오르기를 원하지만이 노드는 그렇지 않습니다. 그게 가능하니?SKSpriteNode가 다른 SKSpriteNode로부터 튀어 나오지 못하도록 방지합니다.

self.physicsWorld.contactDelegate = self; 
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; 
self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f); 


self.zone = [SKSpriteNode spriteNodeWithImageNamed:@"Oval.png"]; 
self.zone.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)); self.zone.xScale = 0.3; 
self.zone.yScale = 0.3; 

self.zone.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.zone.frame.size.width/2]; 
self.zone.physicsBody.restitution = 0.0f; 
self.zone.physicsBody.density = 0; 
self.zone.physicsBody.friction = 0.4f; 
self.zone.physicsBody.categoryBitMask = zoneCategory; 
self.zone.physicsBody.dynamic = NO; 


self.ball = [SKSpriteNode spriteNodeWithImageNamed:@"Ball.png"]; 
self.ball.position = CGPointMake(80,0); 
self.ball.name = @"BallNode";//how the node is identified later 
self.ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.ball.frame.size.width/2]; 
self.ball.physicsBody.restitution = 0.1f; 
self.ball.physicsBody.friction = 0.4f; 
self.ball.physicsBody.categoryBitMask = ballCategory; 
self.ball.physicsBody.dynamic = NO; 

나는 공과 구역이 튀는 것을 원치 않습니다. 어떤 아이디어? 연락처가 SKPhysicsContactDelegate에서 didBeginContact:의 전화를 기대 발생할 때 다음

self.zone.collisionBitMask = 0xFFFFFFFF & (~ballCategory); 
self.ball.collisionBitMask = 0xFFFFFFFF & (~zoneCategory); 
self.zone.contactTestBitMask = ballCategory; 

:

답변

0

collisionBitMask 그 두 물체 등을 contactTestBitMask을 설정합니다. 충돌이 없습니다.

+1

다음과 같이하십시오 : self.zone.collisionBitMask & = ~ ballCategory; – 0x141E