gpt4 book ai didi

cocos2d-x - 检查动画是否在cocos2d-x中运行

转载 作者:行者123 更新时间:2023-12-04 13:23:58 29 4
gpt4 key购买 nike

我目前正在学习cocos2D-x,并且正在做一些 Sprite 动画。
我的目标是,单击按钮后,对象将向左移动并显示一些动画。
现在,如果快速单击多次,动画将立即发生,并且看起来熊在希望而不是走路。

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

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

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是一个全局变量,我想知道它当前是否正在播放动画。

我该怎么办?谢谢。

最佳答案

假设运行该 Action 的Sprite是

CCSprite* bear;

我认为您可以使用类似
bear->numberOfRunningActions()
numberOfRunningActions( )返回一个无符号整数,因此要检查是否没有 Action ,您必须检查它是否返回 0
if ( bear -> numberOfRunningActions( ) == 0 ) {
CCLOG( "No actions running." );
} else {
CCLOG( "Actions running." );
}

关于cocos2d-x - 检查动画是否在cocos2d-x中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582481/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com