Как запустить обратную анимацию с Cocos3D?
Я использую приведенный ниже код для запуска анимации, но как отменить анимацию? (Например, модель двери имеет открытую анимацию, но я хочу сделать ее закрытой)
CC3ResourceNode* rezNode = [CC3PODResourceNode nodeFromFile: @"bd1hW1368.POD"];
[self addChild: rezNode];
CCActionInterval *stride = [CC3Animate actionWithDuration:10.0];
[rezNode runAction:[CCRepeatForever actionWithAction:stride]];
[ОБНОВИТЬ]
В связи с ответом Билла я создаю непрерывную анимацию закрытия / открытия двери, как показано ниже:
CC3ResourceNode* rezNode = [CC3PODResourceNode nodeFromFile: @"bd1hW1368.POD"];
[self addChild: rezNode];
CC3Animate *stride = [CC3Animate actionWithDuration:10.0];
CC3Animate *reversedStride = [CC3Animate actionWithDuration:10.0];
reversedStride.isReversed = YES;
CCRepeatForever *repeat = [CCRepeatForever actionWithAction:[CCSequence actionWithArray:@[stride, reversedStride]]];
[rezNode runAction:repeat];
1 ответ
Решение
Как и большинство CCActionInterval
подклассы, CC3Animate
поддерживает reverse
метод, который возвращает новый CC3Animate
Экземпляр настроен для запуска назад.
Вы также можете использовать то же самое CC3Animate
экземпляр и установить isReversed
собственность на YES
, но создав отдельный экземпляр, используя reverse
Этот метод позволит вам упростить выполнение таких действий, как последовательность действий при открытии двери с последующим действием при закрытии двери.