【光晕动画】

效果图:

程序源码:

bool HelloWorld::init()
{
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                                        "CloseNormal.png",
                                        "CloseSelected.png",
                                        this,
                                        menu_selector(HelloWorld::menuCloseCallback));
    
	pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 ,
                                origin.y + pCloseItem->getContentSize().height/2));

    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
    pMenu->setPosition(CCPointZero);
    this->addChild(pMenu, 1);

	CCSprite *flare = CCSprite::create("flare.jpg");
	flare->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));
	this->addChild(flare);

	flare->setOpacity(0);// 设置初始透明度
	flare->setRotation(-120);// 设置初始角度
	flare->setScale(0.2f);// 设置初始缩小倍

	// 由不透明到透明渐变
	CCActionInterval *opacityAnim = CCFadeTo::create(0.5f, 255);
	CCActionInterval *opacDim = CCFadeTo::create(1.0f, 0);

	// 0.7s放大1.2倍, 放大动作减速
	CCActionInterval *bigAnim = CCScaleBy::create(0.7f, 1.2f, 1.2f);
	CCEaseSineOut *biggerEase = CCEaseSineOut::create(bigAnim);

	//0.5s移动新位置,移动动作减速
	CCActionInterval *moveAnim = CCMoveBy::create(0.5f, ccp(328, 0));
	CCEaseSineOut *moveEase = CCEaseSineOut::create(moveAnim);

	// 角度旋转90',角度旋转速度,指数减速
	CCActionInterval *roteAnim = CCRotateBy::create(2.5f, 90); 
	CCEaseExponentialOut * rotateEase = CCEaseExponentialOut::create(roteAnim);

	// 放大到原大小
	CCScaleTo *bigger = CCScaleTo::create(0.5f, 1);

	// 执行动画和回调函数切换GameLayer场景
	flare->runAction(CCSequence::create(opacityAnim, biggerEase, opacDim,  NULL));//初始化sprite设置完成后,显示sprite,然后放大0.7s持续放大1.2倍,再设置为透明
	flare->runAction(moveEase);//0.5s持续减速移动到新的位置
	flare->runAction(rotateEase);//指数减速2.5s持续旋转90'
	flare->runAction(bigger);//最后恢复原大小

	return true;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值