middle ease animation for sbv2

This commit is contained in:
yugecin 2016-12-25 16:22:09 +01:00
parent 66b174523b
commit 2b5ee7d8b8
2 changed files with 13 additions and 6 deletions

View File

@ -294,6 +294,13 @@ public enum AnimationEquation {
return -0.5f * ((float) Math.pow(2, 10 * t) * (float) Math.sin((t - period / 4) * (Math.PI * 2) / period)); return -0.5f * ((float) Math.pow(2, 10 * t) * (float) Math.sin((t - period / 4) * (Math.PI * 2) / period));
return (float) Math.pow(2, -10 * t) * (float) Math.sin((t - period / 4) * (Math.PI * 2) / period) * 0.5f + 1; return (float) Math.pow(2, -10 * t) * (float) Math.sin((t - period / 4) * (Math.PI * 2) / period) * 0.5f + 1;
} }
},
IN_OUT_EASE_MIDDLE {
@Override
public float calc(float t) {
float ct = 1f - t;
return 3f * ct * ct * t * 0.6f + 3 * ct * t * t * 0.4f + t * t * t * 1f;
}
}; };
/** Overshoot constant for "back" easings. */ /** Overshoot constant for "back" easings. */

View File

@ -41,7 +41,7 @@ public class MoveStoryboard {
private final SimpleButton btnAddCubic; private final SimpleButton btnAddCubic;
private final SimpleButton btnAnimLin; private final SimpleButton btnAnimLin;
private final SimpleButton btnAnimCir; private final SimpleButton btnAnimMid;
private final SimpleButton btnAnimCub; private final SimpleButton btnAnimCub;
private final StoryboardMove dummyMove; private final StoryboardMove dummyMove;
@ -61,7 +61,7 @@ public class MoveStoryboard {
btnAddQuadratic = new SimpleButton(width - 205, 80, 200, 25, Fonts.SMALL, "add quadratic", Colors.BLUE_BUTTON, Colors.WHITE_FADE, Colors.WHITE_FADE, Colors.ORANGE_BUTTON); btnAddQuadratic = new SimpleButton(width - 205, 80, 200, 25, Fonts.SMALL, "add quadratic", Colors.BLUE_BUTTON, Colors.WHITE_FADE, Colors.WHITE_FADE, Colors.ORANGE_BUTTON);
btnAddCubic = new SimpleButton(width - 205, 110, 200, 25, Fonts.SMALL, "add cubic", Colors.BLUE_BUTTON, Colors.WHITE_FADE, Colors.WHITE_FADE, Colors.ORANGE_BUTTON); btnAddCubic = new SimpleButton(width - 205, 110, 200, 25, Fonts.SMALL, "add cubic", Colors.BLUE_BUTTON, Colors.WHITE_FADE, Colors.WHITE_FADE, Colors.ORANGE_BUTTON);
btnAnimLin = new SimpleButton(width - 250, 50, 40, 25, Fonts.SMALL, "lin", Color.blue, Color.white, Color.white, Color.orange); btnAnimLin = new SimpleButton(width - 250, 50, 40, 25, Fonts.SMALL, "lin", Color.blue, Color.white, Color.white, Color.orange);
btnAnimCir = new SimpleButton(width - 250, 80, 40, 25, Fonts.SMALL, "cir", Color.blue, Color.white, Color.white, Color.orange); btnAnimMid = new SimpleButton(width - 250, 80, 40, 25, Fonts.SMALL, "cir", Color.blue, Color.white, Color.white, Color.orange);
btnAnimCub = new SimpleButton(width - 250, 110, 40, 25, Fonts.SMALL, "cub", Color.blue, Color.white, Color.white, Color.orange); btnAnimCub = new SimpleButton(width - 250, 110, 40, 25, Fonts.SMALL, "cub", Color.blue, Color.white, Color.white, Color.orange);
dummyMove = (StoryboardMove) Proxy.newProxyInstance(StoryboardMove.class.getClassLoader(), new Class<?>[]{StoryboardMove.class}, new InvocationHandler() { dummyMove = (StoryboardMove) Proxy.newProxyInstance(StoryboardMove.class.getClassLoader(), new Class<?>[]{StoryboardMove.class}, new InvocationHandler() {
@Override @Override
@ -93,7 +93,7 @@ public class MoveStoryboard {
btnAddQuadratic.render(g); btnAddQuadratic.render(g);
btnAddCubic.render(g); btnAddCubic.render(g);
btnAnimLin.render(g); btnAnimLin.render(g);
btnAnimCir.render(g); btnAnimMid.render(g);
btnAnimCub.render(g); btnAnimCub.render(g);
if (moves[objectIndex] != null && objectIndex > 0 && trackPosition >= gameObjects[objectIndex - 1].getEndTime() && trackPosition < gameObjects[objectIndex].getTime()) { if (moves[objectIndex] != null && objectIndex > 0 && trackPosition >= gameObjects[objectIndex - 1].getEndTime() && trackPosition < gameObjects[objectIndex].getTime()) {
moves[objectIndex].render(g); moves[objectIndex].render(g);
@ -128,11 +128,11 @@ public class MoveStoryboard {
if (btnAnimLin.isHovered()) { if (btnAnimLin.isHovered()) {
getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.LINEAR); getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.LINEAR);
} }
if (btnAnimCir.isHovered()) { if (btnAnimMid.isHovered()) {
getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.IN_OUT_CIRC); getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.IN_OUT_CIRC);
} }
if (btnAnimCub.isHovered()) { if (btnAnimCub.isHovered()) {
getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.IN_OUT_CUBIC); getCurrentMoveOrDummy().setAnimationEquation(AnimationEquation.IN_OUT_EASE_MIDDLE);
} }
} }
@ -159,7 +159,7 @@ public class MoveStoryboard {
btnAddQuadratic.update(x, y); btnAddQuadratic.update(x, y);
btnAddCubic.update(x, y); btnAddCubic.update(x, y);
btnAnimLin.update(x, y); btnAnimLin.update(x, y);
btnAnimCir.update(x, y); btnAnimMid.update(x, y);
btnAnimCub.update(x, y); btnAnimCub.update(x, y);
if (moves[objectIndex] != null) { if (moves[objectIndex] != null) {
moves[objectIndex].update(delta, x, y); moves[objectIndex].update(delta, x, y);