With the current implementation of CCEaseIn/CCEaseOut you can only reduce the speed of actions from zero to zero. This means that if you lighten CCMoveBy/CCMoveTo , they will facilitate the speed of movement from / to the stop.
However, starting with cocos2d 2.1, CCMoveBy/CCMoveTo can be stacked . With this function, you can implement a workaround that will lead to the desired effect.
Setting up and simultaneously performing two CCMoveBy actions for the sprite: actionA will have a slower speed of movement, which you will get after clicking the button. actionB will have a speed corresponding to the difference between a faster speed and a lower speed.
Then, when the user clicks the button, you can CCEeaseOut actionB (stop CCMoveBy and then run it again using the desired CCEaseOut ). It will look like a sprite reduces the movement speed of actionA + actionB to the speed of actionA .
Despite this explanation, if you implement game controls that you want to fine-tune, it would be better to avoid CCActions and simply update the sprite's position in the frame by implementing a custom motion code.
source share