鱼C论坛

 找回密码
 立即注册
查看: 3298|回复: 0

cocos2d-x切换场景的32种动画代码

[复制链接]
发表于 2013-11-7 01:24:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x




  1. //--------------HelloWorldScene.h
  2. #ifndef __HELLOWORLD_SCENE_H__
  3. #define __HELLOWORLD_SCENE_H__


  4. #include "cocos2d.h"


  5. class HelloWorld : public cocos2d::CCLayer
  6. {
  7. public:


  8.    virtual bool init();  
  9.    static cocos2d::CCScene* scene();
  10.    CREATE_FUNC(HelloWorld);
  11.    virtual ~HelloWorld();
  12.    void changeScene();


  13.    //生命周期函数
  14.    virtual void onEnter();
  15.    virtual void onEnterTransitionDidFinish();
  16.    virtual void onExit();
  17. };


  18. #endif // __HELLOWORLD_SCENE_H__








  19. //--------------HelloWorldScene.cpp




  20. #include "HelloWorldScene.h"
  21. #include "SimpleAudioEngine.h"
  22. #include "TestLayer.h"


  23. using namespace cocos2d;
  24. using namespace CocosDenshion;




  25. CCScene* HelloWorld::scene()
  26. {
  27.    CCScene *scene = CCScene::create();
  28.    HelloWorld *layer = HelloWorld::create();
  29.    scene->addChild(layer);
  30.    return  scene;
  31. }


  32. bool HelloWorld::init()
  33. {
  34.    if ( !CCLayer::init() )
  35.    {
  36.          return false;
  37.    }
  38.    CCLOG("HelloWorld init");


  39.    CCSprite * sp = CCSprite::create("background1.png");
  40.    sp->setPosition(ccp(240,160));
  41.    addChild(sp);




  42.    CCLabelTTF* labelTTF =CCLabelTTF::create("点击切换场景", "Helvetica-Hald",
  43. 30);
  44.    labelTTF->setColor(ccc3(255, 0, 0));
  45.    CCMenuItemLabel * labelItem = CCMenuItemLabel::create(labelTTF, this,
  46. menu_selector(HelloWorld::changeScene));
  47.    CCMenu* menu= CCMenu::create(labelItem,NULL);
  48.    addChild(menu);


  49.      return true;
  50. }


  51. void HelloWorld::changeScene(){








  52.    CCTransitionScene* reScene =NULL;
  53.    CCScene* s =TestLayer::scene();
  54.    float t= 1.2f;


  55. //--------  CCTransitionJumpZoom  --创建一个跳动的过渡动画
  56.    //reScene = CCTransitionJumpZoom::create(t,s)  ;


  57. //--------  CCTransitionProgressRadialCCW  -- 创建一个扇形进度条形式的过渡动画(逆时针)
  58.    //reScene = CCTransitionProgressRadialCCW::create(t,s);


  59. //--------  CCTransitionProgressRadialCW  -- 创建一个扇形进度条形式的过渡动画(顺时针)
  60.    //reScene = CCTransitionProgressRadialCW::create(t,s);


  61. //--------  CCTransitionProgressHorizontal -- 创建一个水平进度条形式过渡动画
  62.    //reScene=CCTransitionProgressHorizontal::create(t, s);


  63. //--------  CCTransitionProgressVertical  --创建一个垂直进度条形式过渡动画
  64.     //reScene=CCTransitionProgressVertical::create(t, s);


  65. //--------  CCTransitionProgressInOut  --创建一个从里向外扩展的动画
  66.    //reScene=CCTransitionProgressInOut::create(t, s);


  67. //--------  CCTransitionProgressOutIn  --创建一个从外向里扩展的动画
  68.    //reScene=CCTransitionProgressOutIn::create(t, s);


  69. //--------  CCTransitionCrossFade  --创建一个逐渐透明的过渡动画
  70.    //reScene =CCTransitionCrossFade::create(t, s);


  71. //--------  CCTransitionPageTurn  --创建一个翻页的过渡动画
  72.    //reScene =CCTransitionPageTurn::create(t, s, false);


  73. //--------  CCTransitionFadeTR  --创建一个从左下到右上的过渡动画
  74.    //reScene = CCTransitionFadeTR::create(t, s);


  75. //--------  CCTransitionFadeBL
  76.    //reScene = CCTransitionFadeBL::create(t, s);


  77. //--------  CCTransitionFadeUp
  78.    //reScene = CCTransitionFadeUp::create(t, s);


  79. //--------  CCTransitionFadeDown
  80.    //reScene = CCTransitionFadeDown::create(t, s);


  81. //--------  CCTransitionTurnOffTiles  --创建一个随机方格消失的过渡动画
  82.    //reScene = CCTransitionTurnOffTiles::create(t, s);


  83. //--------  CCTransitionSplitRows  --创建一个分行划分切换的过渡动画
  84.    //reScene = CCTransitionSplitRows::create(t, s);


  85. //--------  CCTransitionSplitCols  --创建一个分列划分的过渡动画
  86.    //reScene = CCTransitionSplitCols::create(t, s);


  87. //--------  CCTransitionFade  --创建一个过渡到目标颜色的过渡动画
  88.    //reScene = CCTransitionFade::create(t, s,ccRED);


  89. //-------- CCTransitionFlipX  --创建一个X轴反转的过渡动画
  90.    //reScene=CCTransitionFlipX::create(t, s,kOrientationRightOver);


  91. //--------  CCTransitionFlipY  --创建一个Y轴反转的过渡动画
  92.    //reScene=CCTransitionFlipY::create(t, s,kOrientationUpOver);


  93. //--------  CCTransitionFlipAngular  --创建一个带有反转角的反转切换的过渡动画
  94.    //reScene=CCTransitionFlipAngular::create(t, s,kOrientationLeftOver);


  95. //--------  CCTransitionZoomFlipX  --创建一个带有缩放的x轴反转的过渡动画
  96.    //reScene=CCTransitionZoomFlipX::create(t, s,kOrientationLeftOver);


  97. //--------  CCTransitionZoomFlipY  --创建一个带有缩放的y轴反转的过渡动画
  98.    //reScene=CCTransitionZoomFlipY::create(t, s,kOrientationLeftOver);


  99. //--------  CCTransitionZoomFlipAngular  --创建一个带有缩放、反转的过渡动画
  100.    //reScene = CCTransitionZoomFlipAngular::create(t,
  101. s,kOrientationLeftOver);


  102. //--------  CCTransitionShrinkGrow  --创建一个带有缩放交替的过渡动画
  103.    //reScene = CCTransitionShrinkGrow::create(t, s);


  104. //--------  CCTransitionRotoZoom  --创建一个带有旋转缩放的过渡动画
  105.    //reScene = CCTransitionRotoZoom::create(t, s);


  106. //--------  CCTransitionMoveInL  --创建一个从左侧推入覆盖的过渡动画
  107.    //reScene  =CCTransitionMoveInL::create(t, s);


  108. //--------  CCTransitionMoveInR  --创建一个从右侧推入覆盖的过渡动画
  109.    //reScene  =CCTransitionMoveInR::create(t, s);


  110. //--------  CCTransitionMoveInT
  111.    //reScene  =CCTransitionMoveInT::create(t, s);


  112. //--------  CCTransitionMoveInB
  113.    //reScene  =CCTransitionMoveInB::create(t, s);


  114. //--------  CCTransitionSlideInL  --创建一个从左侧推入并顶出旧场景的过渡动画
  115.    //reScene = CCTransitionSlideInL::create(t, s);


  116. //--------  CCTransitionSlideInR  --创建一个从右侧推入并顶出旧场景的过渡动画
  117.    //reScene = CCTransitionSlideInR::create(t, s);


  118. //--------  CCTransitionSlideInT
  119.    //reScene = CCTransitionSlideInT::create(t, s);


  120. //--------  CCTransitionSlideInB
  121.    reScene = CCTransitionSlideInB::create(t, s);


  122.    CCDirector::sharedDirector()->replaceScene(reScene);


  123. }


  124. void HelloWorld::onEnter(){
  125.    CCLOG("HelloWorld onEnter");
  126.    CCLayer::onEnter();//务必调用
  127. }


  128. void HelloWorld::onEnterTransitionDidFinish(){
  129.    CCLOG("HelloWorld onEnterTransitionDidFinish");
  130.    CCLayer::onEnterTransitionDidFinish();//务必调用
  131. }


  132. void HelloWorld::onExit(){
  133.    CCLOG("HelloWorld onExit");
  134.    CCLayer::onExit();//务必调用
  135. }


  136. HelloWorld:: ~HelloWorld(){
  137.    CCLOG("HelloWorld 析构");
  138. }






  139. //------------------------TestLayer.h


  140. //
  141. //  TestLayer.h
  142. //  ReplaceSceneTest
  143. //
  144. //  Created by Himi on 12-9-12.
  145. //
  146. //


  147. #ifndef __ReplaceSceneTest__TestLayer__
  148. #define __ReplaceSceneTest__TestLayer__


  149. #include "cocos2d.h"




  150. class TestLayer : public cocos2d::CCLayer
  151. {
  152. public:


  153.    virtual bool init();
  154.    static cocos2d::CCScene* scene();
  155.    CREATE_FUNC(TestLayer);






  156.    virtual void onEnter();
  157.    virtual void onEnterTransitionDidFinish();
  158.    virtual void onExit();


  159. };


  160. #endif /* defined(__ReplaceSceneTest__TestLayer__) */






  161. //-------------------------------TestLayer.cpp


  162. //
  163. //  TestLayer.cpp
  164. //  ReplaceSceneTest
  165. //
  166. //  Created by Himi on 12-9-12.
  167. //
  168. //


  169. #include "TestLayer.h"
  170. using namespace cocos2d;




  171. CCScene* TestLayer::scene()
  172. {
  173.    CCScene *scene = CCScene::create();
  174.    TestLayer *layer = TestLayer::create();
  175.    scene->addChild(layer);
  176.    return scene;
  177. }


  178. bool TestLayer::init()
  179. {
  180.    if ( !CCLayer::init() )
  181.    {
  182.        return false;
  183.    }
  184.    CCLOG("TestLayer init");


  185.    CCSprite * sp = CCSprite::create("background2.png");
  186.    sp->setPosition(ccp(240,160));
  187.    addChild(sp);


  188.    return true;
  189. }


  190. //进入此类中的调用函数
  191. void TestLayer::onEnter(){
  192.    CCLOG("TestLayer onEnter");
  193.    CCLayer::onEnter();
  194. }


  195. //切换动画完成后调用的函数
  196. void TestLayer::onEnterTransitionDidFinish(){
  197.    CCLOG("TestLayer onEnterTransitionDidFinish");
  198.    CCLayer::onEnterTransitionDidFinish();
  199. }


  200. //退出时候调用的函数
  201. void TestLayer::onExit(){
  202.    CCLOG("TestLayer onExit");
  203.    CCLayer::onExit();
  204. }





复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 21:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表