n init方法我开始一个CCAnimation。没关系。在触摸结束的方法我停止动画。在停止时我需要获得当前的动画图像。
Player = CCSprite::create("AngleSelector1.png");
Player->setPosition( ccp(size.width / 2, size.height/2) );
this->addChild(Player);
//Animation
CCAnimation *animate = CCAnimation::create();
for (int i = 1; i <=10; i++)
{
char frameName[128] = {0};
sprintf(frameName, "AngleSelector%d.png", i);
animate->addSpriteFrameWithFileName(frameName) ;
}
animate->setDelayPerUnit(0.35f); // This animation contains 3 frames, will continuous 2.8 seconds.
animate->setRestoreOriginalFrame(true); // Return to the 1st frame after the 3rd frame is played.
CCAnimate *animaction = CCAnimate::create(animate);
CCRepeatForever *rt = CCRepeatForever::create(animaction);
Player->runAction(rt);
this->setTouchEnabled(true);
void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
Player->stopAllActions();
}
答案 0 :(得分:1)
我使用以下代码解决了。图像索引将返回当前显示框
CCTexture2D* tex = Player->getTexture();
int imageIndex = 0;
for (int i=0; i< animate->getFrames()->count(); i++) {
CCAnimationFrame *frame = (CCAnimationFrame*)animate->getFrames()->objectAtIndex(i);
CCTexture2D *tex2 = frame->getSpriteFrame()->getTexture();
if (tex->isEqual(tex2)) {
imageIndex = i;
break;
}
}