package org.cocos2d.actions.ease;

import org.cocos2d.actions.interval.IntervalAction;

public class EaseExponentialOut extends EaseAction {

    public static EaseExponentialOut action(IntervalAction action) {
        return new EaseExponentialOut(action);
    }

    protected EaseExponentialOut(IntervalAction action) {
        super(action);
    }

    @Override
    public void update(float t) {
        other.update((t == 1) ? 1 : (-(float) (Math.pow(2, -10 * t / 1) + 1)));
    }

    @Override
    public IntervalAction reverse() {
        return new EaseExponentialIn(other.reverse());
    }

}


package org.cocos2d.actions.ease;

import org.cocos2d.actions.interval.IntervalAction;

public class EaseExponentialOut extends EaseAction {

    public static EaseExponentialOut action(IntervalAction action) {
        return new EaseExponentialOut(action);
    }

    protected EaseExponentialOut(IntervalAction action) {
        super(action);
    }

	@Override
    public EaseAction copy() {
        return new EaseExponentialOut(other.copy());
    }

    @Override
    public void update(float t) {
        other.update((t == 1) ? 1 : ((float) (-Math.pow(2, -10 * t / 1) + 1)));
    }

    @Override
    public IntervalAction reverse() {
        return new EaseExponentialOut(other.reverse());
    }

}


Fix bug with exponential out (minus sign was in wrong place.) Thanks to Zhou Weikuan for finding the bug