2013-07-18 4 views
1

저는 Cocos2d의 초보자이며, 가로 패턴으로 7 개의 동전을 표시하고 싶습니다. 그래서 내가 내 주요 게임 플레이 층에 쓴 것입니다 : 내 초기화에서CCSprite를 7 번 표시하십시오.

,이

coins = [CCSprite spriteWithFile:@"coins.png"]; 

내가 나는 그것이 (일곱 번에 걸쳐 디스플레이)에 있어야 할 동전 패턴하는 방법을 만들었습니다

- (void)coinPatterns { 
    coins.position = ccp(150,150); 

    for(int i = 0; i < 7; i++) 
    { 
     coins.position = ccp (coins.position.x + 20, coins.position.y); 
     [self addChild:coins]; 
    } 
} 

그리고 내 업데이트 방법

[self coinPatterns]; 

에서 그러나 어떤 이유로이 추가, 내 코드는 CRA를 유지 아프다. 아무도 내가 이것을 고칠 수있는 방법을 알고 있습니까?

감사합니다.

+1

코드가 계속 충돌하는 이유는 동일한 객체를 레이어에 두 번 이상 추가하기 때문입니다. – Renaissance

+0

아, 그게 왜 충돌했는지 .. 당연하지 .. –

답변

3

당신이 여기서하고 싶은 것은 각 동전에 대해 별도의 스프라이트 노드를 만드는 것이고, 동일한 동전을 반복해서 사용하는 것이 아니라고 생각합니다. x 값이 결코 없기 때문에 당신은이

- (void)coinPatterns { 
    NSInteger originalX = 150; 
    for(int i = 0; i < 7; i++) 
    { 
     CCSprite *coin = [CCSprite spriteWithFile:@"coins.png"]; 
     coin.position = ccp(originalX, 150); 
     originalX += 20; 
     [self addChild:coin]; 
    } 
} 

이 7 개 동전을 만들어 같이, 각각의 사용자가 제공 한 코드에서 모두 7 개 동전이 서로 위에 쌓인되었을 것입니다, 또한 (20)에 의해 간격 것으로 할 것 실제로 증가합니다. 이것을 사용하면 변수 또는 속성 coins을 가질 필요가 없습니다. 당신은 캐릭터가 그들로 치면 볼 수있는 예를 들어, 나중에이 동전에 액세스하려면

, 당신은에 대한 루프 아래에 선 [self.coinArray addObject:coin];를 추가 NSMutableArray 특성 coinArray을 만들 수있는 다음 배열에 각각의 동전을 추가 [self addChild:coin];. 그것은 배열에 모두 넣어 것입니다.

는 충돌을 감지하면이 방법은 characterMoved 가질 필요가있다이

- (void)characterMoved:(CCSprite *)character 
{ 
    for (CCSprite *coin in self.coinArray) 
    { 
     if (CGRectIntersectsRect(coin.frame, character.frame) 
      // character and coin collided, add points or remove the coin or something 
    } 
} 

이의 라인을 따라 뭔가를 수행합니다 때마다 캐릭터의 움직임을 발사하는.

+0

정말 고마워! 이것은 더 잘 설명하지 못했습니다 :) –

+0

NSMutableArray에 액세스하고 그것에 쓰는 방법을 알고 있습니까? 캐릭터와 동전 사이의 충돌을 감지하고 싶습니다. 감사! –

+1

@ShalinShah 편집 내역 확인 –