Actualmente estoy aprendiendo cocos2D-x y estoy haciendo algo de animación de sprites.
Mi objetivo es que cuando se hace clic en un botón, el objeto se mueve hacia la izquierda con algo de animación. Ahora, si hace clic varias veces rápidamente, la animación se lleva a cabo de inmediato y parece que el oso espera en lugar de caminar.Comprobar si la animación se está ejecutando en cocos2d-x
La solución parece sencilla: debo comprobar si la animación ya se está ejecutando y si no debe ejecutarse la nueva animación.
La siguiente es una parte de mi código.
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);
Aquí bearAnimate es una variable global y deseo saber si se está reproduciendo actualmente la animación.
¿Cómo lo hago?
Gracias.
@LanceGray: ¡Gracias amigo! –
¿Sabrías cómo es en cocos2d regular? – RollRoll
@ThePoet Creo que la función es la misma? –