Используя cocos2d, как я могу добиться импульсной анимации с помощью действий.
Я знаю, что мне понадобится CCScaleTo и, вероятно, CCRepeat, но я не знаю, как их собрать.
CCScaleTo
CCRepeat
Просто для полноты в дополнение к описанному выше ответу Джеймса вам нужно вызвать метод [runAction ...] для вашего объекта CCNode и передать ему действие - то есть код, предоставленный Джеймсом как есть.
Чтобы остановить пульсирующий эффект, вы можете вызвать [stopAllActions ...] на вашем CCNode.
Best
Получил это почти сразу!Это пульсирует объект навсегда с периодом 2 секунды и увеличивается на 10%.
[CCRepeatForever actionWithAction: [CCSequence actions: [CCScaleTo actionWithDuration:1.0f scale:1.1f], [CCScaleTo actionWithDuration:1.0f scale:1.0f], nil]]];
Или CCFadeTo в зависимости от того, как вы хотите, чтобы ваша анимация выглядела ...
- (void) pulseStop { [mySprite stopAllActions]; } - (void) pulseStart { [mySprite setOpacity:1.0]; CCFadeTo *fadeToIn = [CCFadeTo actionWithDuration:1.0 opacity:50]; CCFadeTo *fadeToOut = [CCFadeTo actionWithDuration:1.0 opacity:255]; [mySprite runAction:[CCRepeatForever actionWithAction:[CCSequence actionOne:fadeToIn two:fadeToOut]]]; }