Пользовательский класс анимации - PullRequest
0 голосов
/ 07 февраля 2012

Для моего приложения я пытаюсь реализовать персонажа, который отображает анимацию ходьбы при ходьбе и отображает анимацию прыжка в воздухе.

Используя Cocos2D, я создал простую анимацию. Проблема в том, что я использую CCRepeatForever и не могу остановить анимацию или выключить ее, как только я ее отключил.

В книге Штеффена Иттерхейма обсуждалась некоторая анимация в главе, касающейся спрайтов. Он создал анимацию, добавив несколько фреймов спрайта в объект CCAnimation, а затем запустив его с помощью CCRepeatForever.

В настоящее время я рассматриваю две возможности: 1) Создайте несколько спрайтов и добавьте их в CCArray, а затем переберите несколько спрайтов. 2) Найдите альтернативное решение CCRepeatForever и найдите способ остановить анимацию или переключиться на другую анимацию.

Проблема с номером 1 заключается в том, что я не могу найти способ визуализации селективного спрайта на сцене. Похоже, что единственный способ добавить спрайт на экран - использовать [self addChild: mySprite]; Это ограничивает и проблематично, если я хочу переключаться между несколькими спрайтами. Есть ли способ выборочного рендеринга спрайта? Проблема для номера 2 заключается в том, что, похоже, нет альтернативы CCRepeatForever, а других классов анимации недостаточно для запуска анимации.

Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2012

Предполагая, что вы назначите тег для действия следующим образом.

CCSprite *sprite = [CCSprite spriteWithFile:@"image.png"];
CCRotateBy *spinAction = [CCRotateBy actionWithDuration:1 angle:90];
CCRepeatForever *spinForever = [CCRepeatForever actionWithAction:spinAction];
[spinForever setTag:ANIMATION_TAG];
[sprite runAction:spinForever];

вы можете остановить анимацию, вызвав

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