Как заставить спрайт исчезнуть с различными анимациями на его щелчке? - PullRequest
3 голосов
/ 12 октября 2011

Я новичок в Cocos2D. Я делаю простую игру для iPhone, в которой я хочу, чтобы мой спрайт исчез с некоторой анимацией. До сих пор я могу заставить его исчезнуть с помощью следующего кода: -

-(void)selectSpriteForTouch:(CGPoint)touchLocation
{ 

    for (CCSprite *sprite in targets)  
    {

        if (CGRectContainsPoint(sprite.boundingBox, touchLocation)) 
        {
            NSLog(@"sprite was touched");

            [sprite.parent removeChild:sprite cleanup:YES];
            [[SimpleAudioEngine sharedEngine] playEffect:@"pop.wav"];
            [[SimpleAudioEngine sharedEngine] setEffectsVolume:4.0f];

        }
    }
}

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

    for( UITouch *touch in touches )
    {

        CGPoint location = [touch locationInView: [touch view]];

        location = [[CCDirector sharedDirector] convertToGL: location];

        [self selectSpriteForTouch:location];
        NSLog(@"touch was detected");
    }   
}

Теперь я хочу, чтобы спрайт исчез с некоторой анимацией или каким-либо эффектом. Как я могу это сделать?

1 Ответ

1 голос
/ 12 октября 2011

Например, это может привести к сокращению спрайта до его исчезновения, а затем удалить его из родительского элемента:

-(void)selectSpriteForTouch:(CGPoint)touchLocation
    ...
    if (CGRectContainsPoint(sprite.boundingBox, touchLocation))
    {
        [sprite runAction:[CCSequence actions:
            [CCScaleTo actionWithDuration:0.4 scale:0],
            [CCCallFuncO actionWithTarget:self selector:@selector(removeSprite:) object:sprite],
            nil]];
            ...//play audio etc
    }
    ....
}

-(void) removeSprite:(CCSprite*) s
{
    [s.parent removeChild:s cleanup:YES];
}

Для других действий попробуйте CCMoveTo или CCJumpTo или CCRotateBy.Вы можете выполнить несколько действий одновременно, поэтому над предоставленной мною строкой runAction: попробуйте другой [sprite runAction:[CCRotateBy actionWithDuration:0.4 angle:360]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...