summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2018-12-07 00:53:39 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2018-12-07 00:53:39 +0100
commit3d5471cc3a2cf6cd5341475b3549c804449d623d (patch)
treeb0dc2f1aa3544c6a887ad9ca936e8d0077b0d8ed /core/src
parent7f207d82e58be80dc2ddce6b2863ef01c7cac65a (diff)
downloadgdx-boardgame-3d5471cc3a2cf6cd5341475b3549c804449d623d.zip
gdx-boardgame-3d5471cc3a2cf6cd5341475b3549c804449d623d.tar.gz
MoveAnimation : add Sound support
Diffstat (limited to 'core/src')
-rw-r--r--core/src/ch/asynk/gdx/boardgame/animations/MoveAnimation.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/animations/MoveAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/MoveAnimation.java
index b5480d7..c0b4987 100644
--- a/core/src/ch/asynk/gdx/boardgame/animations/MoveAnimation.java
+++ b/core/src/ch/asynk/gdx/boardgame/animations/MoveAnimation.java
@@ -1,5 +1,6 @@
package ch.asynk.gdx.boardgame.animations;
+import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.utils.Pool;
import com.badlogic.gdx.math.Vector3;
@@ -22,13 +23,14 @@ public class MoveAnimation implements Animation, Pool.Poolable
}
};
- public static MoveAnimation obtain(Piece piece, Path path, float speed, MoveAnimationCb cb)
+ public static MoveAnimation obtain(Piece piece, Path path, float speed, Sound snd, MoveAnimationCb cb)
{
MoveAnimation a = moveAnimationPool.obtain();
a.piece = piece;
a.path = path;
a.speed = speed;
+ a.snd = snd;
a.cb = cb;
a.init();
@@ -45,6 +47,7 @@ public class MoveAnimation implements Animation, Pool.Poolable
private boolean notify;
private Vector3 dst = new Vector3();
private Vector3 dt = new Vector3();
+ private Sound snd;
private MoveAnimation()
{
@@ -97,9 +100,14 @@ public class MoveAnimation implements Animation, Pool.Poolable
@Override public boolean animate(float delta)
{
- if (notify && percent == 0f) {
- cb.onTileChange(piece, path);
- notify = false;
+ if (percent == 0f) {
+ if (snd != null) {
+ snd.loop();
+ }
+ if (notify) {
+ cb.onTileChange(piece, path);
+ notify = false;
+ }
}
piece.translate(dt.x * delta, dt.y * delta);
piece.rotate(dt.z * delta);
@@ -119,6 +127,12 @@ public class MoveAnimation implements Animation, Pool.Poolable
}
}
- return (percent >= 1f);
+ if (percent >= 1f) {
+ if (snd != null) {
+ snd.stop();
+ }
+ return true;
+ }
+ return false;
}
}