удалить первое изображение с интервалом - PullRequest
0 голосов
/ 08 марта 2011

Я использую ...

[self addChild:self.blue_action];
[self schedule:@selector(updateTimer1:) interval:1.0f];

Через эту строку я хочу показать изображение в любой позиции, и через некоторое время это изображение будет удалено через '[self removeChild: self.blue_action cleanUp: Yes];'

-(void)updateTimer1:(id)sender {
    if(time_1 == 0) {
        NSLog(@"time value ");
        [self removeChild:self.blue_action cleanup:YES];
        [self schedule: @selector(updateTimer1:) interval:0.10];
    }
    else {
        --time_1;
    }
}

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Вы хотите запустить метод один раз за определенное время? Действие полезно.

-(void)addBlueAction {
    [self addChild:self.blue_action];
    [self runAction:[CCSequence actions:
        [CCDelayTime actionWithDuration:1],
        [CCCallFunc actionWithTarget:self
            selector:@selector(removeBlueAction)],
        nil]];
}

-(void)removeBlueAction {
    [self removeChild:self.blue_action cleanup:YES];
}

Если цель вашего приложения - после iOS 4.0, вы можете использовать Blocks.

-(void)addBlueAction {
    [self addChild:self.blue_action];
    [self runAction:[CCSequence actions:
        [CCDelayTime actionWithDuration:1],
        [CCCallBlock actionWithBlock:^{

            [self removeChild:self.blue_action cleanup:YES];

        }],
        nil]];
}
0 голосов
/ 09 марта 2011

В этом случае метод updateTimer1:(id)sender уже был запланирован.Чтобы запланировать это снова, вы, очевидно, должны не планировать этот метод на [self unschedule:_cmd];

. И это хорошая практика - не удалять спрайт каждый раз, когда вы хотите, чтобы он исчез, попробуйте сделать его невидимым self.blue_action.visible = NO

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