2013-07-19 5 views
-1

저는 Cocos2d의 초보자입니다. 5 초의 지연 시간으로 화면 밖으로 빠져 나오 자마자 코인 스프라이트를 표시하고 싶었습니다. 그래서 내가 연속으로 7 개 동전을 추가 내 주요 게임 플레이 층에 쓴 것입니다 : 다음5 초 후에 CCSprites 반복하기

- (void)coinSidewaysRowOne { 
     if (coinSide1 == FALSE) 
     { 
      coinSide1 = TRUE; 
      NSLog(@"coinSide1 = TRUE"); 
      int originalX = 500; 
      for(int i = 0; i < 8; i++) 
      { 
       CCSprite *coinHorizontal = [CCSprite spriteWithFile:@"bubble.png"]; 
       coinHorizontal.position = ccp(originalX, 150); 
       originalX += 20; 

       [self addChild:coinHorizontal]; 
       [coinArray addObject:coinHorizontal]; 
      } 
     } 
    } 

그리고, 내 updateRunning 방법에 나는이 추가, 그래서 동전이 화면 밖에서 산란 할 때, 그들은에 이동 왼쪽 사라 :

for (CCSprite *coin in coinArray) 
    { 
     // apply background scroll speed 
     float backgroundScrollSpeedX = [[GameMechanics sharedGameMechanics] backGroundScrollSpeedX]; 
     float xSpeed = 1.09 * backgroundScrollSpeedX; 

     // move the coin until it leaves the left edge of the screen 
     if (coin.position.x > (coin.contentSize.width * (-1))) 
     { 
      coin.position = ccp(coin.position.x - (xSpeed*delta), coin.position.y); 
     } 
     **// This is where I am trying to make the CCSprite coin reappear** 
     else 
     { 
      [self performSelector:@selector(showSpriteAgain:) withObject:coin afterDelay:5.0f]; 
     } 
    } 

을 그리고 나는이 방법을 추가 :

-(void) showSpriteAgain:(CCSprite *)coin{ 
    CGSize screenSize = [[CCDirector sharedDirector] winSize]; 
    coin.position = ccp(coin.position.x-screenSize.width,coin.position.y); 
} 

을하지만 동전은 여전히 ​​오초 후에 다시 나타나지 않습니다. 내가 뭔가 잘못하고 있는거야? 감사. showSpriteAgain 기능에

+0

나는 생각한다, 그래서 우리가 바로 우리가 screennSize.width을 추가 할 필요가에 배치 할 필요가 오른쪽 또는 왼쪽으로 이동했다 무슨 짓을하여 'else '부분이 호출되지 않습니다 .. 디버그 포인터 또는 NSLog를 넣어서 확인할 수 있습니까? – iphonic

+0

NSLog를 추가하고 동전의 첫 번째 물결이 사라지 자마자 호출되고 있지만 동전은' 다시 나타나지 않는다. –

+0

@ShalinShah : 나는 너 자신을 시험해 봐야한다고 생각한다. 나는 이것을 여기에 써서는 안되지만 같은 질문을 두 번 올리는 길은 싫어. – Renaissance

답변

1

변경 :

-(void) showSpriteAgain:(CCSprite *)coin{ 
    CGSize screenSize = [[CCDirector sharedDirector] winSize]; 
    coin.position = ccp(coin.position.x + screenSize.width,coin.position.y); 
} 

나는, 그것

관련 문제