程序员人生 网站导航

Cocos2d 场景切换特效

栏目:codeigniter时间:2014-10-10 08:00:00

添加一个场景WelcomeScene

[cpp] view plaincopy
  1. #include "WelcomeScene.h"  
  2. #include "GameScene.h"  
  3.   
  4. using namespace cocos2d;  
  5.   
  6. CCScene* WelcomeScene::scene()  
  7. {  
  8.     CCScene * scene = NULL;  
  9.     do  
  10.     {  
  11.         scene=CCScene::create();  
  12.   
  13.         WelcomeScene* gameScene=WelcomeScene::create();  
  14.         scene->addChild(gameScene);  
  15.   
  16.   
  17.     }while(0);  
  18.   
  19.     return scene;  
  20. }  
  21.   
  22. bool WelcomeScene::init()  
  23. {  
  24.     this->setTouchEnabled(true);  
  25.     bool bRet = false;  
  26.     do  
  27.     {  
  28.         CCSprite* pMap = CCSprite::create("welcome_bg.png");  
  29.         CCSize size = CCDirector::sharedDirector()->getWinSize();  
  30.         pMap->setPosition(ccp(size.width/2, size.height/2));  
  31.         this->addChild(pMap, 0);  
  32.   
  33.         CCMenuItemImage *pCloseItem = CCMenuItemImage::create(  
  34.             "StartGameNormal.png",  
  35.             "StartGamePressed.png",  
  36.             this,  
  37.             menu_selector(WelcomeScene::menuStartCallback));  
  38.         CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);  
  39.         pMenu->setPosition(size.width/2,size.height/2);  
  40.         this->addChild(pMenu, 1);  
  41.               
  42.     }while(0);  
  43.   
  44.     bRet=true;  
  45.   
  46.     return bRet;  
  47. }  
  48.   
  49.   
  50. void WelcomeScene::menuStartCallback(CCObject* pSender)  
  51. {  
  52.     CCScene * scene=GameScene::scene();  
  53.     CCDirector::sharedDirector()->replaceScene(scene);  
  54. }  
在menuStartCallback()中通过导演来切换场景。


使用特效:

[cpp] view plaincopy
  1. CCDirector::sharedDirector()->replaceScene((CCTransitionSlideInR::create(1, scene)));  


网上找的特效:

CCTransitionJumpZoom::transitionWithDuration(t, s);//跳跃式,本场景先会缩小,然后跳跃进来

CCTransitionFade::transitionWithDuration(t, s);//淡出淡入,原场景淡出,新场景淡入

CCTransitionFade::transitionWithDuration(t, s, ccWHITE);//如果上一个的函数,带3个参数,则第三个参数就是淡出淡入的颜色

CCTransitionFlipX::transitionWithDuration(t, s, kOrientationLeftOver);//x轴左翻

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐