cocos2d-x初学笔记10:特效Effect

        cocos2d-x中的特效效果共有22种,包括摇晃,波纹,旋转,透镜等。我们选择其中的一种特效来讲讲它的用法。

      首先新建一个项目,命名为EffectTest,然后对文件进行修改。

        (注意:我使用的cocos2d-x版本是2.0.4,系统是win7)下载地址

          我们修改HelloWorld.cpp文件的init()函数如下:

bool HelloWorld::init()
{
    bool bRet = false;
    do 
    {
        //////////////////////////////////////////////////////////////////////////
        // super init first
        //////////////////////////////////////////////////////////////////////////

        CC_BREAK_IF(! CCLayer::init());

        //////////////////////////////////////////////////////////////////////////
        // add your codes below...
        //////////////////////////////////////////////////////////////////////////

        // 1. Add a menu item with "X" image, which is clicked to quit the program.

        // Create a "close" menu item with close icon, it's an auto release object.
        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
            "CloseNormal.png",
            "CloseSelected.png",
            this,
            menu_selector(HelloWorld::menuCloseCallback));
        CC_BREAK_IF(! pCloseItem);

        // Place the menu item bottom-right conner.
        pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));

        // Create a menu with the "close" menu item, it's an auto release object.
        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
        pMenu->setPosition(CCPointZero);
        CC_BREAK_IF(! pMenu);

        // Add the menu to HelloWorld layer as a child layer.
        this->addChild(pMenu, 1);

        //获得屏幕大小
        CCSize size = CCDirector::sharedDirector()->getWinSize();
        //创建一个精灵作为背景,用来显示波动效果
        CCSprite* pSprite = CCSprite::create("HelloWorld.png");
        CC_BREAK_IF(! pSprite);
        pSprite->setPosition(ccp(size.width/2, size.height/2));
        
	//创建一个节点
	CCNode* node = CCNode::create();
	//创建一个波动特效实例,参数代表:动画波动次数,波动振幅,波动区域大小,波动时间
	CCActionInterval* effect = CCWaves3D::create(5, 40, ccg(15,10), 3);
	//将背景添加进节点
	node->addChild(pSprite);
	//执行波动动作
        node->runAction(effect);
	//将节点添加到布景
	addChild(node,0);

        bRet = true;
    } while (0);

    return bRet;
}

我们只实现了波动特效,其他特效的用法一样,只需改变创建特效动画时的特效类名称就可以了。在此就不在赘述。运行程序,结果如下

                                     cocos2d-x初学笔记10:特效Effect_第1张图片

        需要注意的是,程序中我们并没有把右下角的菜单按钮加入到节点,由于运行波动特效的是这个节点,所以右下角的菜单按钮并没有随着特效而波动。我们这里只是简单地实现了一种波动特效,其他的许多更丰富的特效还请大家自己去练习实现。

最后祝愿每一个奋斗在路上的人早日实现梦想!

你可能感兴趣的:(cocos2d-x初学笔记10:特效Effect)