summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/engine
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/engine')
-rw-r--r--core/src/ch/asynk/tankontank/engine/gfx/animations/ShotAnimation.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/gfx/animations/ShotAnimation.java b/core/src/ch/asynk/tankontank/engine/gfx/animations/ShotAnimation.java
index 9d2257e..4a0130d 100644
--- a/core/src/ch/asynk/tankontank/engine/gfx/animations/ShotAnimation.java
+++ b/core/src/ch/asynk/tankontank/engine/gfx/animations/ShotAnimation.java
@@ -49,11 +49,14 @@ public class ShotAnimation implements Disposable, Animation, Pool.Poolable
private static final float EXPLOSION_FRAME_DURATION = 0.05f;
private static Random random = new Random();
- private static Sound shortShot;
- private static Sound longShot;
+ private static Sound shotSnd;
+ private static Sound shotSndLong;
+ private static Sound explosionSnd;
+ private static Sound explosionSndLong;
private static Sprites shot;
private static Sprites explosion;
- private static double longShotId;
+ private static double shotSndLongId;
+ private static double explosionSndLongId;
private TextureRegion shotRegion;
private float shot_a;
@@ -96,24 +99,30 @@ public class ShotAnimation implements Disposable, Animation, Pool.Poolable
return a;
}
- public static void init(Texture shot_texture, int scols, int srows, Texture explosion_texture, int ecols, int erows, Sound longSnd, Sound shortSnd)
+ public static void init(Texture shot_texture, int scols, int srows, Texture explosion_texture, int ecols, int erows, Sound ls, Sound ss, Sound le, Sound se)
{
- longShot = longSnd;
- shortShot = shortSnd;
+ shotSndLong = ls;
+ shotSnd = ss;
+ explosionSndLong = le;
+ explosionSnd = se;
shot = new Sprites(shot_texture, scols, srows);
explosion = new Sprites(explosion_texture, ecols, erows);
- longShotId = -1;
+ shotSndLongId = -1;
+ explosionSndLongId = -1;
}
public static void resetSound()
{
- longShotId = -1;
+ shotSndLongId = -1;
+ explosionSndLongId = -1;
}
public static void free()
{
- shortShot.dispose();
- longShot.dispose();
+ shotSnd.dispose();
+ shotSndLong.dispose();
+ explosionSnd.dispose();
+ explosionSndLong.dispose();
shot.texture.dispose();
explosion.texture.dispose();
}
@@ -197,10 +206,10 @@ public class ShotAnimation implements Disposable, Animation, Pool.Poolable
if (!fired) {
fired = true;
- if (longShotId == -1)
- longShotId = longShot.play(volume);
+ if (shotSndLongId == -1)
+ shotSndLongId = shotSndLong.play(volume);
else
- shortShot.play(volume);
+ shotSnd.play(volume);
}
if (!hit && (elapsed < hit_time)) {
@@ -213,8 +222,10 @@ public class ShotAnimation implements Disposable, Animation, Pool.Poolable
if (!hit) {
hit = true;
- // TODO hit sound
- shortShot.play(volume);
+ if (explosionSndLongId == -1)
+ explosionSndLongId = explosionSndLong.play(volume);
+ else
+ explosionSnd.play(volume);
}
if (elapsed < end_time) {