CCOribitCamera的问题边移动边旋转导致精灵变形的问题

问题由来: 我想实现类似于《神魔之塔》怪物死亡后掉落的卡牌回收时,同时旋转(饶Y轴旋转)、缩小、移动的效果。
代码如下:

   
 <pre class="brush:cpp; toolbar: true; auto-links: false;">
    CCSprite* lpoCard = CCSprite::create("card.png");
    lpoCard->setScale(0.2f);
    lpoCard->setPosition(ccp(visibleSize.width / 2.0f,
        visibleSize.height/2));
    this->addChild(lpoCard, 1, 111);

 CCPoint ldDesPoint = CCPointMake(40, CCDirector::sharedDirector()->getWinSize().height - 40);        // 目标点
    float lfSecondDuration = 5.0f;                // 移动到目标点的周期
    float lfScaleBy = 0.01f;                        // 缩小的倍数
    unsigned int luSecondRotateCycles = 40;        // 第二次旋转的圈数
    ccBezierConfig ldBezierConfig;
    ldBezierConfig.controlPoint_1 = npoSprite->getPosition(); <img title = 'QQ图片20131108183553.jpg' src='http://cdn.cocimg.com/bbs/attachment/Fid_41/41_270765_4fd1da018cbcdd7.jpg' > 
    ldBezierConfig.controlPoint_2 = ccp(ldDesPoint.x + 20, ldDesPoint.y + 50);
    ldBezierConfig.endPosition = ldDesPoint;

    CCActionInterval* lpoBezierToAction = CCBezierTo::create(lfSecondDuration,ldBezierConfig);

    CCActionInterval* lpoScaleByAction = CCScaleBy::create(lfSecondDuration, lfScaleBy);

    CCActionInterval* lpoRotationY2 = CCOrbitCamera::create(lfSecondDuration, 1, 0, 0, 180 * luSecondRotateCycles, 0, 0);
   
    // 组合上面三个动作
    CCActionInterval* lpoSpawnAction = CCSpawn::create(lpoBezierToAction, lpoScaleByAction, lpoRotationY2,NULL);
    // 使上面三个动作加速执行
    CCActionInterval* lpoExpoInAction = CCEaseExponentialIn::create(lpoSpawnAction);


    // 3、最后隐藏精灵
    CCActionInterval* lpoFadeOutAction = CCFadeOut::create(0.1f);

    CCActionInterval* lpoSequenceAction = CCSequence::create(lpoExpoInAction, lpoFadeOutAction, NULL);
    npoSprite->runAction(lpoSequenceAction);




    不知道怎么直接插入截图,所以改成附件了。。  效果就是在执行的过程中,这个卡会慢慢的发生变形。比如本来看起来高是比宽要大的,结果旋转到快结束的时候,宽比高要多了,求大神来帮帮忙解决下,谢谢了。
     <img title = 'QQ图片20131108183553.jpg' src='http://cdn.cocimg.com/bbs/attachment/Fid_41/41_270765_4fd1da018cbcdd7.jpg' >

。。不是吧?都没人回答。。。

因为用了cccamer。