2014-04-01 2 views
0

지연 시간과 대상을 제거하기 위해, 코드는 target.tag = 1, 나는 그것의 이미지를 보여 0.5을 지연 할 경우이어떻게 지연 시간과 대상을 삭제하려고

-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    CGPoint location = [self convertTouchToNodeSpace: touch]; 

    targetsToRemove = [[NSMutableArray array] init]; 
    for (CCSprite *target in _targets) {// here _targets is NSMutableArray 
    if (CGRectContainsPoint(target.boundingBox, location)) { 
     [targetsToRemove addObject:target]; 
    } 
    } 

    for (CCSprite *target in targetsToRemove) { 
    if (target.tag == 1) { 
    [target setTexture:[[CCTextureCache sharedTextureCache] addImage:@"1.png"]]; 
    [_targets removeObject:target]; 
    [self removeChild:target cleanup:YES]; 
    } 
    else { 
    CCLOG(@"remove target immediately"); 
    } 
    } 

} 

을 좋아하고, 그것을 제거하고 scheduleOnce를 사용하려고 시도하지만 충돌이 발생합니다. 어떻게해야합니까? 이 작동하는 경우

답변

0

나는 (내가 C#을적인 Cocos2D-XNA 만 알고 있어요) 목표 - C에서 이것을 쓸 수 있지만 참조하는 방법을 잘 모르겠어요 :

가 CCSequence의에서 첫 번째 작업을 확인 시퀀스는 0.5를 인수로 갖는 CCDelayTime이고, 시퀀스의 두 번째 동작은 CCRemoveSelf입니다. 그런 다음 대상 스프라이트에서이 시퀀스를 실행하십시오.

희망이 도움이 될 것입니다. 더 많은 도움을 받으려면 https://gamedev.stackexchange.com/을 시도해보십시오.

0

이 방법을 시도해보십시오 여기

-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
     { 
     ... 
     for (CCSprite *target in targetsToRemove) { 
      if (target.tag == 1) { 
       [target setTexture:[[CCTextureCache sharedTextureCache] addImage:@"1.png"]]; 
       CCDelayTime *delay =[CCDelayTime actionWithDuration:3.0f]; 
        CCCallFunc *removeTarget = [CCCallFunc actionWithTarget:self selector:@selector(removeSprites:data:)data:target]; 

        [target runAction:[CCSequence actionWithActions:delay, removeTarget, nil]]; 
     } 
     } 


-(void)removeSprites:(id)sender data:(CCSPrite *)sprtToDelete 
    { 
    if(!_targets) 
     [_targets removeObject:sprtToDelete]; 

    [sprtToDelete removeFromParentAndCleanUp:YES]; 
    } 

당신은 스프라이트를 삭제하기 위해 각각 두 가지 작업을 실행하고 있습니다. 따라서 첫 번째 액션에서 3 초를 기다렸다가 두 번째 액션에서이 스프라이트로 매개 변수가있는 메소드를 호출합니다. 그리고 그 방법으로 스프라이트를 정리하십시오.

희망이 도움이 될 것입니다. 내가 아는 게 아니라면.