2011-12-29 3 views
0
-(id) init 
{ 
    // always call "super" init 
    // Apple recommends to re-assign "self" with the "super" return value 
    if((self=[super initWithColor:ccc4(255,255,255,255)])) { 
     [UIApplication sharedApplication].idleTimerDisabled = YES; 
     imageArray = [[NSMutableArray alloc]init]; 
     winSize = [[CCDirector sharedDirector]winSize]; 
     [self addEverything]; 
     [self schedule:@selector(imageBlink) interval:5.0f]; 
    } 
    return self; 
} 

-(void)imageBlink{ 
    int tagNum = (arc4random() %9)+1 ; 

    for (CCSprite *object in imageArray) { 

     if (object.tag == tagNum) { 

      [object runAction: [CCSequence actions:[CCBlink actionWithDuration:2 blinks:1],[CCFadeOut actionWithDuration:2], nil]]; 
      [[SimpleAudioEngine sharedEngine]playEffect:@"slap.mp3"]; 

      NSLog(@"blink"); 
      return; 
     } 
    } 
} 

-(void)addImage{ 
    self.imageTag = 1; 
    for (int i = 0; i <3; i++) { 
     for (int j =0; j<3; j++) { 
      image = [CCSprite spriteWithSpriteFrameName:@"0002.png"]; 

      NSLog(@"%d",imageTag); 
      [image setTag:self.imageTag]; 
      self.imageTag ++ ; 
      image.position = ccp(STAGE_WIDTH/(3)*(j)+35+41, STAGE_HEIGHT/(3)*(i)+115+41); 
      [imageArray addObject:image]; 
      [image setVisible:NO]; 
      [self addChild:image z:2]; 

     } 
    } 
} 

imaged blink라는 메서드를 5 초마다 호출하도록 예약했습니다. 이 메서드는 배열에서 내 스프라이트를 깜박이는 것처럼 보입니다 (표시 및 사라짐). 그러나 여러 번 호출 (약 10 개 이상) 후에 스프라이트가 깜박임을 멈 춥니 다. 그러나 NSLog "blink"를 통한 출력은 여전히 ​​5s 간격으로 나타납니다. 나는 아이폰 에뮬레이터와 아이팟에이 문제가있다. 도와 주셔서 감사합니다.Cocos2d 여러 번 실행 한 후 CCAction이 중지됩니다.

답변

0

개체가 이미 깜박임 시퀀스를 실행하고 있고 다른 개체를 실행하면 화면에 어떤 일이 일어나고 있는지 방해 할 수 있습니다. 새 시퀀스를 실행하기 전에 stopAllActions를 추가하는 것이 좋습니다.

다른 주목할 점은 CCFadeOut 작업을 실행한다는 것입니다. 이 작업을 수행하면 스프라이트의 불투명도는 0이되고 CCBlink는 표시되는 속성을 변경하지만 불투명도에는 영향을주지 않습니다. 즉, 시퀀스를 시작하기 전에 스프라이트가 최대 불투명도인지 확인해야합니다.

[object stopAllActions]; 
object.opacity = 255; 
[object runAction: [CCSequence actions:[CCBlink actionWithDuration:2 blinks:1],[CCFadeOut actionWithDuration:2], nil]]; 
관련 문제