在CCAnimation Cocos2d-x中获取图像

时间:2014-09-27 07:00:48

标签: ios animation cocos2d-x

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

}

1 个答案:

答案 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;
    }
}
相关问题