2014-04-11 2 views
4

저는 일부 SpriteKit 자습서를 작성했습니다. 전체 충돌 문제를 이해하고 충돌이 두 객체간에 등록된다는 것을 NSLog에서 확인했습니다. 그러나 일부 정말 이상한 이유로 내 스프라이트는 didBeginContact 중에 완료 될 때 생성되지 않습니다.didBeginContact 중에 스프라이트 만들기

- (void)didBeginContact:(SKPhysicsContact *)contact 
{ 
    uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask); 
    if (collision == (CNPhysicsCategoryPlayer | CNPhysicsCategoryRock)) 
    { 
     NSLog(@"ouch"); 
     SKSpriteNode *bigOuch = [SKSpriteNode spriteNodeWithImageNamed:@"star"]; 
     bigOuch.position = CGPointMake(200, 200); 
     [self addChild:bigOuch]; 
    } 
} 

오크 로그 메시지가 표시되지만 스프라이트가 표시되지 않습니다.

내 프로그램의 다른 부분에 동일한 (스프라이트 생성) 코드를 시도했지만 아무런 문제가 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

나는 똑같은 문제를 뒤로하고있다. SKSpriteNode를 생성하여 뷰에 추가 할 수 있지만 표시되지는 않습니다. 짧은 것은 배열을 생성하고 didBeginContact 단계에서 생성해야하는 모든 스프라이트를 추가하는 것입니다. 업데이트 단계에서 배열을 검사하여 내보기에 추가했습니다. 완료 후에 배열을 비우는 것을 잊지 마십시오. 그렇지 않으면 같은 스프라이트가 반복해서 추가 될 것입니다.

관련 문제