当前位置:编程学习 > wap >>

[Cocos2D-X ]初窥门径(2) 场景的切换及特效

在上节的基础上,看看怎么实现场景的切换。
 
添加一个场景WelcomeScene
 
[cpp] 
#include "WelcomeScene.h"  
#include "GameScene.h"  
  
using namespace cocos2d;  
  
CCScene* WelcomeScene::scene()  
{  
    CCScene * scene = NULL;  
    do  
    {  
        scene=CCScene::create();  
  
        WelcomeScene* gameScene=WelcomeScene::create();  
        scene->addChild(gameScene);  
  
  
    }while(0);  
  
    return scene;  
}  
  
bool WelcomeScene::init()  
{  
    this->setTouchEnabled(true);  
    bool bRet = false;  
    do  
    {  
        CCSprite* pMap = CCSprite::create("welcome_bg.png");  
        CCSize size = CCDirector::sharedDirector()->getWinSize();  
        pMap->setPosition(ccp(size.width/2, size.height/2));  
        this->addChild(pMap, 0);  
  
        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(  
            "StartGameNormal.png",  
            "StartGamePressed.png",  
            this,  
            menu_selector(WelcomeScene::menuStartCallback));  
        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);  
        pMenu->setPosition(size.width/2,size.height/2);  
        this->addChild(pMenu, 1);  
              
    }while(0);  
  
    bRet=true;  
  
    return bRet;  
}  
  
  
void WelcomeScene::menuStartCallback(CCObject* pSender)  
{  
    CCScene * scene=GameScene::scene();  
    CCDirector::sharedDirector()->replaceScene(scene);  
}  
在menuStartCallback()中通过导演来切换场景。
 
 
 
使用特效:
 
[cpp] 
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轴左翻
CCTransitionFlipX::transitionWithDuration(t, s, kOrientationRightOver);//x轴右翻
CCTransitionFlipY::transitionWithDuration(t, s, kOrientationUpOver);//y轴上翻
CCTransitionFlipY::transitionWithDuration(t, s, kOrientationDownOver);//y轴下翻
CCTransitionFlipAngular::transitionWithDuration(t, s, kOrientationLeftOver);//有角度转的左翻
CCTransitionFlipAngular::transitionWithDuration(t, s, kOrientationRightOver);//有角度转的右翻
CCTransitionZoomFlipX::transitionWithDuration(t, s, kOrientationLeftOver);//带缩放效果x轴左翻
CCTransitionZoomFlipX::transitionWithDuration(t, s, kOrientationRightOver);//带缩放效果x轴右翻
CCTransitionZoomFlipY::transitionWithDuration(t, s, kOrientationUpOver);//带缩放效果y轴上翻
CCTransitionZoomFlipY::transitionWithDuration(t, s, kOrientationDownOver);//带缩放效果y轴下翻 
CCTransitionZoomFlipAngular::transitionWithDuration(t, s, kOrientationLeftOver);//带缩放效果/有角度转的左翻
CCTransitionZoomFlipAngular::transitionWithDuration(t, s, kOrientationRightOver);//带缩放效果有角度转的右翻
CCTransitionShrinkGrow::transitionWithDuration(t, s);//交错换
CCTransitionRotoZoom::transitionWithDuration(t, s);//转角换
CCTransitionMoveInL::transitionWithDuration(t, s);//新场景从左移入覆盖
CCTransitionMoveInR::transitionWithDuration(t, s);//新场景从右移入覆盖
CCTransitionMoveInT::transitionWithDuration(t, s);//新场景从上移入覆盖
CCTransitionMoveInB::transitionWithDuration(t, s);//新场景从下移入覆盖
CCTransitionSlideInL::transitionWithDuration(t, s);//场景从左移入推出原场景
CCTransitionSlideInR::transitionWithDuration(t, s);//场景从右移入推出原场景
CCTransitionSlideInT::transitionWithDuration(t, s);//场景从上移入推出原场景
CCTransitionSlideInB::transitionWithDuration(t, s);//场景从下移入推出原场景
以下三个需要检测opengl版本是否支持CCConfiguration::sharedConfiguration()->getGlesVersion() <= GLES_VER_1_0如果为真则为不支持
CCTransitionCrossFade::transitionWithDuration(t,s);//淡出淡入交叉,同时进行
CCTransitionRadialCCW::transitionWithDuration(t,s);//顺时针切入
CCTransitionRadialCW::transitionWithDuration(t,s);//逆时针切入
以下两个需要先设置摄像机,使用CCDirector::sharedDirector()->setDepthTest(true);
CCTransitionPageTurn::transitionWithDuration(t, s, false);//翻页,前翻
CCTransitionPageTurn::transitionWithDuration(t, s, true);//翻页,后翻
CCTransitionFadeTR::transitionWithDuration(t, s);//向右上波浪
CCTransitionFadeBL::transitionWithDuration(t, s);//向左下波浪
CCTransitionFadeUp::transitionWithDuration(t, s);//向上百叶窗
CCTransitionFadeDown::transitionWithDuration(t, s);//向下百叶窗
CCTransitionTurnOffTiles::transitionWithDuration(t, s);//随机小方块
CCTransitionSplitRows::transitionWithDuration(t, s);//按行切
CCTransitionSplitCols::transitionWithDuration(t, s);//按列切
 
补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,