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

来源:互联网 发布:枪战王者辅助软件 编辑:程序博客网 时间:2024/05/29 19:24

        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;}

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

                                     

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

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

原创粉丝点击