Action Easing
This page will cover every easing animation method that can be used on actions.
Actions are great as they allow a node's properties to be manipulated but they are weightless. They perform the same from start to finish, luckily there are tons of easing methods to help overcome this and make the actions look more dynamic and alive.
Though the easing methods can be used on virtually any action, this page will be using them with a MoveBy action. The MoveBy action will run for 2 seconds and move the node 300 pixels in the x axis and 0 pixels in the y axis.
Ease Example format:
nodeName.runAction( EaseMethod( action ) );
Note: Any action that has a slightly different format to the one above will be clearly shown
Note: The action inside can a variable or an inline action
EaseBackIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBackIn *easeAction = EaseBackIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBackIn( nodeAction );
nodeName.runAction( easeAction );
EaseBackInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBackInOut *easeAction = EaseBackInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBackInOut( nodeAction );
nodeName.runAction( easeAction );
EaseBackOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBackOut *easeAction = EaseBackOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBackOut( nodeAction );
nodeName.runAction( easeAction );
EaseBounceIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBounceIn *easeAction = EaseBounceIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBounceIn( nodeAction );
nodeName.runAction( easeAction );
EaseBounceInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBounceInOut *easeAction = EaseBounceInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBounceInOut( nodeAction );
nodeName.runAction( easeAction );
EaseBounceOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseBounceOut *easeAction = EaseBounceOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseBounceOut( nodeAction );
nodeName.runAction( easeAction );
EaseCircleActionIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCircleActionIn *easeAction = EaseCircleActionIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCircleActionIn( nodeAction );
nodeName.runAction( easeAction );
EaseCircleActionInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCircleActionInOut *easeAction = EaseCircleActionInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCircleActionInOut( nodeAction );
nodeName.runAction( easeAction );
EaseCircleActionOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCircleActionOut *easeAction = EaseCircleActionOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCircleActionOut( nodeAction );
nodeName.runAction( easeAction );
EaseCubicActionIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCubicActionIn *easeAction = EaseCubicActionIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCubicActionIn( nodeAction );
nodeName.runAction( easeAction );
EaseCubicActionInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCubicActionInOut *easeAction = EaseCubicActionInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCubicActionInOut( nodeAction );
nodeName.runAction( easeAction );
EaseCubicActionOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseCubicActionOut *easeAction = EaseCubicActionOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseCubicActionOut( nodeAction );
nodeName.runAction( easeAction );
EaseElasticIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseElasticIn *easeAction = EaseElasticIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseElasticIn( nodeAction );
nodeName.runAction( easeAction );
EaseElasticInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseElasticInOut *easeAction = EaseElasticInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseElasticInOut( nodeAction );
nodeName.runAction( easeAction );
EaseElasticOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseElasticOut *easeAction = EaseElasticOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseElasticOut( nodeAction );
nodeName.runAction( easeAction );
EaseExponentialIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseExponentialIn *easeAction = EaseExponentialIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseExponentialIn( nodeAction );
nodeName.runAction( easeAction );
EaseExponentialInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseExponentialInOut *easeAction = EaseExponentialInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseExponentialInOut( nodeAction );
nodeName.runAction( easeAction );
EaseExponentialOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseExponentialOut *easeAction = EaseExponentialOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseExponentialOut( nodeAction );
nodeName.runAction( easeAction );
EaseIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseIn *easeAction = EaseIn::create( nodeAction, 5.0 );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseIn( nodeAction, 5.0 );
nodeName.runAction( easeAction );
Note: The EaseIn method requires a secondary parameter which is how much it floats
EaseInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseInOut *easeAction = EaseInOut::create( nodeAction, 5.0 );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseInOut( nodeAction, 5.0 );
nodeName.runAction( easeAction );
Note: The EaseInOut method requires a secondary parameter which is how much it floats
EaseOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseOut *easeAction = EaseOut::create( nodeAction, 5.0 );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseOut( nodeAction, 5.0 );
nodeName.runAction( easeAction );
Note: The EaseOut method requires a secondary parameter which is how much it floats
EaseQuadraticActionIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuadraticActionIn *easeAction = EaseQuadraticActionIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuadraticActionIn( nodeAction );
nodeName.runAction( easeAction );
EaseQuadraticActionInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuadraticActionInOut *easeAction = EaseQuadraticActionInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuadraticActionInOut( nodeAction );
nodeName.runAction( easeAction );
EaseQuadraticActionOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuadraticActionOut *easeAction = EaseQuadraticActionOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuadraticActionOut( nodeAction );
nodeName.runAction( easeAction );
EaseQuarticActionIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuarticActionIn *easeAction = EaseQuarticActionIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuarticActionIn( nodeAction );
nodeName.runAction( easeAction );
EaseQuarticActionInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuarticActionInOut *easeAction = EaseQuarticActionInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuarticActionInOut( nodeAction );
nodeName.runAction( easeAction );
EaseQuarticActionOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuarticActionOut *easeAction = EaseQuarticActionOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuarticActionOut( nodeAction );
nodeName.runAction( easeAction );
EaseQuinticActionIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuinticActionIn *easeAction = EaseQuinticActionIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuinticActionIn( nodeAction );
nodeName.runAction( easeAction );
EaseQuinticActionInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuinticActionInOut *easeAction = EaseQuinticActionInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuinticActionInOut( nodeAction );
nodeName.runAction( easeAction );
EaseQuinticActionOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseQuinticActionOut *easeAction = EaseQuinticActionOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseQuinticActionOut( nodeAction );
nodeName.runAction( easeAction );
EaseSineIn
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseSineIn *easeAction = EaseSineIn::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseSineIn( nodeAction );
nodeName.runAction( easeAction );
EaseSineInOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseSineInOut *easeAction = EaseSineInOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseSineInOut( nodeAction );
nodeName.runAction( easeAction );
EaseSineOut
// action to run
MoveBy *nodeAction = MoveBy::create( 2.0, Vec2( 300, 0 ) );
// easing action
EaseSineOut *easeAction = EaseSineOut::create( nodeAction );
nodeName->runAction( easeAction );
// action to run
var nodeAction = new cc.MoveBy( 2.0, cc.p( 300, 0 ) );
// easing action
var easeAction = new cc.EaseSineOut( nodeAction );
nodeName.runAction( easeAction );
Updated about 2 months ago