Obecnie uczę się cocos2D-x i robię animację sprite.
Mój cel polega na tym, że po kliknięciu przycisku obiekt przesuwa się w lewo z animacją. Teraz, jeśli szybko klikniesz kilka razy, animacja nastąpi natychmiast i wygląda na to, że niedźwiedź ma nadzieję, że zamiast chodzić.Sprawdź, czy animacja działa w cocos2d-x
Rozwiązaniem tego problemu jest proste sprawdzenie, czy animacja jest już uruchomiona i czy nowa animacja nie powinna mieć miejsca.
Poniżej znajduje się część mojego kodu.
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("AnimBear.plist");
CCSpriteBatchNode* spriteBatchNode = CCSpriteBatchNode::create("AnimBear.png", 8);
this->addChild(spriteBatchNode,10);
CCArray *tempArray = new CCArray();
char buffer[15];
for (int i = 1; i <= 8 ; i++)
{
sprintf(buffer,"bear%i.png", i);
tempArray->addObject(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(buffer));
}
CCAnimation *bearWalkingAnimation = CCAnimation::create(tempArray,0.1f);
startAnimation = CCSprite::createWithSpriteFrameName("bear1.png");
startAnimation->setPosition(ccp (350 , CCDirector::sharedDirector()->getWinSize().height/2 -100));
startAnimation->setScale(0.5f);
startAnimation->setTag(5);
//Animation for bear walking
bearAnimate = CCAnimate::create(bearWalkingAnimation);
Tutaj bearAnimate jest zmienną globalną i chcę się dowiedzieć, czy aktualnie odtwarza animację.
Jak to zrobić?
Dziękuję.
@LanceGray: Dzięki kolego! –
Czy wiesz, jak to jest w regularnym cocos2d? – RollRoll
@ ThePoet Myślę, że funkcja jest taka sama? –