我正在学习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." ); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。