cocos2d-x游戏开发(十二)场景切换:滑门效果

时间:2023-02-07 20:08:09

欢迎转载:http://blog.csdn.net/fylz1125/article/details/8543759


上一篇文章写了场景切换效果的实现。大家知道实质上是实现的CCTransitionScene的onEnter函数,给自己要载入的场景加了一些动作而已。(文章最后面有代码地址哦

不过我觉得还是有必要写个实例来演示一下。看图,懒的录视频了:

cocos2d-x游戏开发(十二)场景切换:滑门效果

这是我写的一个类似滑动门效果。

[cpp] view plaincopyprint?
  1. class  CCTransitionSlider : public CCTransitionScene , public CCTransitionEaseScene {  
  2.       
  3. public:  
  4.     CCTransitionSlider();  
  5.     virtual ~CCTransitionSlider();  
  6.       
  7.     /**产生一个动作*/  
  8.     virtual CCActionInterval* action(void);  
  9.       
  10.     /**实质上的过渡实现*/  
  11.     virtual void onEnter();  
  12.       
  13.     /**给动作添加变化速率*/  
  14.     virtual CCActionInterval * easeActionWithAction(CCActionInterval * action);  
  15.   
  16. public:  
  17.     static CCTransitionSlider* create(float t, CCScene *scene);  
  18. protected:  
  19.     // 设置当前Scene是否在前面  
  20.     // true则先绘制当前Scene再绘制载入Scene,false则相反  
  21.     // 即true时,第一次不会有过渡动画  
  22.     virtual void sceneOrder();  
  23. };  
  24.   
  25. // 还是基于网格动画的实现。关于网格动画请看红孩儿大神的博客  
  26. class CC_DLL CCSlider : public CCTiledGrid3DAction  
  27. {  
  28.     public :  
  29.     bool init(float duration);  
  30.     virtual CCObject* copyWithZone(CCZone* pZone);  
  31.       
  32.     /**实质上的网格动画实现*/  
  33.     virtual void update(float time);  
  34.       
  35.     virtual void startWithTarget(CCNode *pTarget);  
  36.       
  37. public:  
  38.       
  39.     static CCSlider* create(float duration);  
  40. protected:  
  41.     int m_nRows;  
  42.     CCSize m_winSize;  
  43. };  

其中的网格动画参考了红孩儿的文章,大家可以去看看。写的非常不错 网格动画

其实都挺简单的。

点击下载代码