mirror of https://github.com/axmolengine/axmol.git
461 lines
12 KiB
Plaintext
461 lines
12 KiB
Plaintext
|
|
namespace cocos2d {
|
|
|
|
//static creation function macro
|
|
//c/c++ don't support object creation of using class name
|
|
//so, all classes need creation method.
|
|
|
|
|
|
|
|
/** Orientation Type used by some transitions
|
|
*/
|
|
typedef enum {
|
|
/// An horizontal orientation where the Left is nearer
|
|
kOrientationLeftOver = 0,
|
|
/// An horizontal orientation where the Right is nearer
|
|
kOrientationRightOver = 1,
|
|
/// A vertical orientation where the Up is nearer
|
|
kOrientationUpOver = 0,
|
|
/// A vertical orientation where the Bottom is nearer
|
|
kOrientationDownOver = 1,
|
|
} tOrientation;
|
|
|
|
/** @brief Base class for CCTransition scenes
|
|
*/
|
|
class CCTransitionScene : public CCScene
|
|
{
|
|
|
|
CCTransitionScene();
|
|
~CCTransitionScene();
|
|
void draw();
|
|
void onEnter();
|
|
void onExit();
|
|
void cleanup();
|
|
|
|
/** creates a base transition with duration and incoming scene */
|
|
static CCTransitionScene * transitionWithDuration(ccTime t, CCScene *scene);
|
|
|
|
/** initializes a transition with duration and incoming scene */
|
|
bool initWithDuration(ccTime t,CCScene* scene);
|
|
|
|
/** called after the transition finishes */
|
|
void finish(void);
|
|
|
|
/** used by some transitions to hide the outter scene */
|
|
void hideOutShowIn(void);
|
|
|
|
|
|
|
|
};
|
|
|
|
/** @brief A CCTransition that supports orientation like.
|
|
* Possible orientation: LeftOver, RightOver, UpOver, DownOver
|
|
*/
|
|
class CCTransitionSceneOriented : public CCTransitionScene
|
|
{
|
|
|
|
CCTransitionSceneOriented();
|
|
~CCTransitionSceneOriented();
|
|
|
|
/** creates a base transition with duration and incoming scene */
|
|
static CCTransitionSceneOriented * transitionWithDuration(ccTime t,CCScene* scene, tOrientation orientation);
|
|
/** initializes a transition with duration and incoming scene */
|
|
bool initWithDuration(ccTime t,CCScene* scene,tOrientation orientation);
|
|
};
|
|
|
|
/** @brief CCTransitionRotoZoom:
|
|
Rotate and zoom out the outgoing scene, and then rotate and zoom in the incoming
|
|
*/
|
|
class CCTransitionRotoZoom : public CCTransitionScene
|
|
{
|
|
|
|
CCTransitionRotoZoom();
|
|
~CCTransitionRotoZoom();
|
|
void onEnter();
|
|
static CCTransitionRotoZoom* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionJumpZoom:
|
|
Zoom out and jump the outgoing scene, and then jump and zoom in the incoming
|
|
*/
|
|
class CCTransitionJumpZoom : public CCTransitionScene
|
|
{
|
|
CCTransitionJumpZoom();
|
|
~CCTransitionJumpZoom();
|
|
void onEnter();
|
|
static CCTransitionJumpZoom* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionMoveInL:
|
|
Move in from to the left the incoming scene.
|
|
*/
|
|
class CCTransitionMoveInL : public CCTransitionScene, public CCTransitionEaseScene
|
|
{
|
|
public:
|
|
CCTransitionMoveInL();
|
|
~CCTransitionMoveInL();
|
|
/** initializes the scenes */
|
|
void initScenes(void);
|
|
/** returns the action that will be performed */
|
|
CCActionInterval* action(void);
|
|
|
|
CCActionInterval* easeActionWithAction(CCActionInterval * action);
|
|
|
|
void onEnter();
|
|
static CCTransitionMoveInL* transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
|
|
/** @brief CCTransitionMoveInR:
|
|
Move in from to the right the incoming scene.
|
|
*/
|
|
class CCTransitionMoveInR : public CCTransitionMoveInL
|
|
{
|
|
public:
|
|
CCTransitionMoveInR();
|
|
~CCTransitionMoveInR();
|
|
void initScenes();
|
|
static CCTransitionMoveInR* transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
|
|
/** @brief CCTransitionMoveInT:
|
|
Move in from to the top the incoming scene.
|
|
*/
|
|
class CCTransitionMoveInT : public CCTransitionMoveInL
|
|
{
|
|
public:
|
|
CCTransitionMoveInT();
|
|
~CCTransitionMoveInT();
|
|
void initScenes();
|
|
static CCTransitionMoveInT* transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
|
|
/** @brief CCTransitionMoveInB:
|
|
Move in from to the bottom the incoming scene.
|
|
*/
|
|
class CCTransitionMoveInB : public CCTransitionMoveInL
|
|
{
|
|
CCTransitionMoveInB();
|
|
~CCTransitionMoveInB();
|
|
void initScenes();
|
|
static CCTransitionMoveInB* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionSlideInL:
|
|
Slide in the incoming scene from the left border.
|
|
*/
|
|
class CCTransitionSlideInL : public CCTransitionScene, public CCTransitionEaseScene
|
|
{
|
|
|
|
CCTransitionSlideInL();
|
|
~CCTransitionSlideInL();
|
|
|
|
/** initializes the scenes */
|
|
void initScenes(void);
|
|
/** returns the action that will be performed by the incomming and outgoing scene */
|
|
CCActionInterval* action(void);
|
|
|
|
void onEnter();
|
|
|
|
CCActionInterval* easeActionWithAction(CCActionInterval * action);
|
|
|
|
|
|
static CCTransitionSlideInL* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionSlideInR:
|
|
Slide in the incoming scene from the right border.
|
|
*/
|
|
class CCTransitionSlideInR : public CCTransitionSlideInL
|
|
{
|
|
public:
|
|
CCTransitionSlideInR();
|
|
~CCTransitionSlideInR();
|
|
|
|
/** initializes the scenes */
|
|
void initScenes(void);
|
|
/** returns the action that will be performed by the incomming and outgoing scene */
|
|
CCActionInterval* action(void);
|
|
static CCTransitionSlideInR* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionSlideInB:
|
|
Slide in the incoming scene from the bottom border.
|
|
*/
|
|
class CCTransitionSlideInB : public CCTransitionSlideInL
|
|
{
|
|
|
|
CCTransitionSlideInB();
|
|
~CCTransitionSlideInB();
|
|
|
|
/** initializes the scenes */
|
|
void initScenes(void);
|
|
/** returns the action that will be performed by the incomming and outgoing scene */
|
|
CCActionInterval* action(void);
|
|
|
|
static CCTransitionSlideInB* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionSlideInT:
|
|
Slide in the incoming scene from the top border.
|
|
*/
|
|
class CCTransitionSlideInT : public CCTransitionSlideInL
|
|
{
|
|
|
|
CCTransitionSlideInT();
|
|
~CCTransitionSlideInT();
|
|
|
|
/** initializes the scenes */
|
|
void initScenes(void);
|
|
/** returns the action that will be performed by the incomming and outgoing scene */
|
|
CCActionInterval* action(void);
|
|
static CCTransitionSlideInT* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/**
|
|
@brief Shrink the outgoing scene while grow the incoming scene
|
|
*/
|
|
class CCTransitionShrinkGrow : public CCTransitionScene , public CCTransitionEaseScene
|
|
{
|
|
|
|
CCTransitionShrinkGrow();
|
|
~CCTransitionShrinkGrow();
|
|
|
|
void onEnter();
|
|
CCActionInterval* easeActionWithAction(CCActionInterval * action);
|
|
static CCTransitionShrinkGrow* transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionFlipX:
|
|
Flips the screen horizontally.
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionFlipX : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionFlipX();
|
|
~CCTransitionFlipX();
|
|
void onEnter();
|
|
|
|
static CCTransitionFlipX* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationRightOver);
|
|
};
|
|
|
|
/** @brief CCTransitionFlipY:
|
|
Flips the screen vertically.
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionFlipY : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionFlipY();
|
|
~CCTransitionFlipY();
|
|
|
|
void onEnter();
|
|
|
|
static CCTransitionFlipY* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationUpOver);
|
|
};
|
|
|
|
/** @brief CCTransitionFlipAngular:
|
|
Flips the screen half horizontally and half vertically.
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionFlipAngular : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionFlipAngular();
|
|
~CCTransitionFlipAngular();
|
|
|
|
void onEnter();
|
|
|
|
static CCTransitionFlipAngular* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationRightOver);
|
|
};
|
|
|
|
/** @brief CCTransitionZoomFlipX:
|
|
Flips the screen horizontally doing a zoom out/in
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionZoomFlipX : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionZoomFlipX();
|
|
~CCTransitionZoomFlipX();
|
|
|
|
void onEnter();
|
|
|
|
static CCTransitionZoomFlipX* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationRightOver);
|
|
};
|
|
|
|
/** @brief CCTransitionZoomFlipY:
|
|
Flips the screen vertically doing a little zooming out/in
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionZoomFlipY : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionZoomFlipY();
|
|
~CCTransitionZoomFlipY();
|
|
|
|
void onEnter();
|
|
|
|
static CCTransitionZoomFlipY* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationUpOver);
|
|
};
|
|
|
|
/** @brief CCTransitionZoomFlipAngular:
|
|
Flips the screen half horizontally and half vertically doing a little zooming out/in.
|
|
The front face is the outgoing scene and the back face is the incoming scene.
|
|
*/
|
|
class CCTransitionZoomFlipAngular : public CCTransitionSceneOriented
|
|
{
|
|
CCTransitionZoomFlipAngular();
|
|
~CCTransitionZoomFlipAngular();
|
|
|
|
void onEnter();
|
|
|
|
static CCTransitionZoomFlipAngular* transitionWithDuration(ccTime t, CCScene* s, tOrientation o = kOrientationRightOver);
|
|
};
|
|
|
|
/** @brief CCTransitionFade:
|
|
Fade out the outgoing scene and then fade in the incoming scene.'''
|
|
*/
|
|
class CCTransitionFade : public CCTransitionScene
|
|
{
|
|
CCTransitionFade();
|
|
~CCTransitionFade();
|
|
|
|
/** creates the transition with a duration and with an RGB color
|
|
* Example: FadeTransition::transitionWithDuration(2, scene, ccc3(255,0,0); // red color
|
|
*/
|
|
static CCTransitionFade* transitionWithDuration(ccTime duration,CCScene* scene, ccColor3B color = ccBLACK);
|
|
/** initializes the transition with a duration and with an RGB color */
|
|
bool initWithDuration(ccTime t, CCScene*scene ,ccColor3B color);
|
|
|
|
bool initWithDuration(ccTime t,CCScene* scene);
|
|
void onEnter();
|
|
void onExit();
|
|
};
|
|
|
|
/**
|
|
@brief CCTransitionCrossFade:
|
|
Cross fades two scenes using the CCRenderTexture object.
|
|
*/
|
|
class CCTransitionCrossFade : public CCTransitionScene
|
|
{
|
|
|
|
CCTransitionCrossFade();
|
|
~CCTransitionCrossFade();
|
|
|
|
void draw();
|
|
void onEnter();
|
|
void onExit();
|
|
static CCTransitionCrossFade * transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionTurnOffTiles:
|
|
Turn off the tiles of the outgoing scene in random order
|
|
*/
|
|
class CCTransitionTurnOffTiles : public CCTransitionScene ,public CCTransitionEaseScene
|
|
{
|
|
|
|
CCTransitionTurnOffTiles();
|
|
~CCTransitionTurnOffTiles();
|
|
|
|
void onEnter();
|
|
CCActionInterval * easeActionWithAction(CCActionInterval * action);
|
|
|
|
static CCTransitionTurnOffTiles * transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionSplitCols:
|
|
The odd columns goes upwards while the even columns goes downwards.
|
|
*/
|
|
class CCTransitionSplitCols : public CCTransitionScene , public CCTransitionEaseScene
|
|
{
|
|
|
|
CCTransitionSplitCols();
|
|
~CCTransitionSplitCols();
|
|
|
|
CCActionInterval* action(void);
|
|
void onEnter();
|
|
CCActionInterval * easeActionWithAction(CCActionInterval * action);
|
|
|
|
static CCTransitionSplitCols * transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
|
|
/** @brief CCTransitionSplitRows:
|
|
The odd rows goes to the left while the even rows goes to the right.
|
|
*/
|
|
class CCTransitionSplitRows : public CCTransitionSplitCols
|
|
{
|
|
|
|
CCTransitionSplitRows();
|
|
~CCTransitionSplitRows();
|
|
|
|
CCActionInterval* action(void);
|
|
static CCTransitionSplitRows * transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionFadeTR:
|
|
Fade the tiles of the outgoing scene from the left-bottom corner the to top-right corner.
|
|
*/
|
|
class CCTransitionFadeTR : public CCTransitionScene , public CCTransitionEaseScene
|
|
{
|
|
|
|
CCTransitionFadeTR();
|
|
~CCTransitionFadeTR();
|
|
CCActionInterval* actionWithSize(ccGridSize size);
|
|
void onEnter();
|
|
CCActionInterval* easeActionWithAction(CCActionInterval * action);
|
|
|
|
static CCTransitionFadeTR * transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionFadeBL:
|
|
Fade the tiles of the outgoing scene from the top-right corner to the bottom-left corner.
|
|
*/
|
|
class CCTransitionFadeBL : public CCTransitionFadeTR
|
|
{
|
|
|
|
CCTransitionFadeBL();
|
|
~CCTransitionFadeBL();
|
|
CCActionInterval* actionWithSize(ccGridSize size);
|
|
|
|
static CCTransitionFadeBL * transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
|
|
/** @brief CCTransitionFadeUp:
|
|
* Fade the tiles of the outgoing scene from the bottom to the top.
|
|
*/
|
|
class CCTransitionFadeUp : public CCTransitionFadeTR
|
|
{
|
|
|
|
CCTransitionFadeUp();
|
|
~CCTransitionFadeUp();
|
|
CCActionInterval* actionWithSize(ccGridSize size);
|
|
static CCTransitionFadeUp * transitionWithDuration(ccTime t, CCScene* scene);
|
|
|
|
};
|
|
|
|
/** @brief CCTransitionFadeDown:
|
|
* Fade the tiles of the outgoing scene from the top to the bottom.
|
|
*/
|
|
class CCTransitionFadeDown : public CCTransitionFadeTR
|
|
{
|
|
CCTransitionFadeDown();
|
|
~CCTransitionFadeDown();
|
|
CCActionInterval* actionWithSize(ccGridSize size);
|
|
|
|
static CCTransitionFadeDown * transitionWithDuration(ccTime t, CCScene* scene);
|
|
};
|
|
}//namespace cocos2d
|
|
|