2014-11-19 8 views
2

나는 시체를 화면 밖으로 튀기는 게임을했습니다. 나는이 시체가 화면의 가장자리에 닿았을 때 감지하고 싶다. (여전히 시체를 화면 밖으로 내 보낸다.) 모든 것을 구현했지만 여전히 작동하지 않는다. 내 코드는 다음과 같다.Sprite Kit didBeginContact가 body와 edgeRect 사이에 호출되지 않았습니다.

GameScene.h

typedef NS_OPTIONS(uint32_t, FAPhysicsCategory) { 
FAWallCategory = 1 << 0, 
FABottomWallCategory = 1 << 1, 
FAAnimalCategory = 1 << 2, 
}; 

GameScene : SKScene <SKPhsyicsContactDelegate> 

GameScene.m

-(void)setupWorldPhysics 
{ 
// Set world gravity 
self.physicsWorld.gravity = CGVectorMake(0.0, -5.0); 

float bottomOffset = 400.0; 
CGRect newFrame = CGRectMake(0, -bottomOffset, self.frame.size.width, self.frame.size.height + bottomOffset); 
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:newFrame]; 
self.physicsBody.categoryBitMask = FAWallCategory; 
self.physicsBody.contactTestBitMask = FAAnimalCategory; 
self.physicsBody.collisionBitMask = 0; 
} 

-(void)launchBody { 
    SKSpriteNode* animalSprite = [SKSpriteNode spriteNodeWithImageNamed:[animalImagesArray objectAtIndex:animalChoice]]; 
    animalSprite.position = CGPointMake(self.size.width/2, -animalSprite.size.height); 
    animalSprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:25]; 
    animalSprite.physicsBody.dynamic = YES; 
    animalSprite.physicsBody.allowsRotation = YES; 
    animalSprite.name = @"animalSprite"; 
    animalSprite.physicsBody.categoryBitMask = FAAnimalCategory; 
    animalSprite.physicsBody.contactTestBitMask = FAWallCategory; 
    animalSprite.physicsBody.collisionBitMask = 0; 
    animalSprite.physicsBody.usesPreciseCollisionDetection = YES; 
    [self addChild:animalSprite]; 
} 
+0

및 그 edgeRect? –

답변

2

좋아이 늦게 내가 지쳤어하고 idiot..i이 누락 된 것 같은 기분이 너무 :

,210

도구

내가 호출되고 그리고 그들 중 누구도 몸 사이의 접촉을 잡으려고가 내 issue..is에게 방법을 해결하지 않았을 -didBeginContact에 관한 다른 모든 질문을 통해 검토 한 결과라고 할