Cocos2d-x   发布时间:2019-10-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了检查动画是否在cocos2d-x中运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习cocos2D-x并正在做一些精灵动画.
我的目标是当单击一个按钮时,对象会向左移动一些动画.
现在,如果你快速点击多次,动画会立即发生,看起来熊似乎希望而不是走路.

它的解决方案看起来很简单,我应该检查动画是否已经在运行以及是否应该运行新动画.

以下是我的代码的一部分.

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);

这里bearAnimate是一个全局变量,我想知道它是否正在播放动画.

我该怎么做.感谢你.

假设运行该操作的Sprite是
CCSprite* bear;

我想你可以用类似的东西

bear->numberOfRunningActions()

numberOfRunningActions()返回一个无符号整数,所以为了检查是否没有动作,你必须检查它是否返回0

if ( bear -> numberOfRunningActions( ) == 0 ) {
   CCLOG( "No actions running." );
} else {
   CCLOG( "Actions running." );
}

大佬总结

以上是大佬教程为你收集整理的检查动画是否在cocos2d-x中运行全部内容,希望文章能够帮你解决检查动画是否在cocos2d-x中运行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。