From b5eb02f8bbf173ba58f717042c569efcc85bb90f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Drahom=C3=ADr=20Karch=C5=88=C3=A1k?= <drahomir.karchnak@nic.cz> Date: Thu, 21 Jan 2016 13:39:57 +0100 Subject: [PATCH] #116 Fixed playing of rule message sound --- .../game/games/kidnapping/KidnappingGame.java | 24 +++++++++++++++++-- .../game/games/kidnapping/Properties.java | 2 ++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java index a7831a3fd..a229d7f29 100644 --- a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java +++ b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java @@ -48,6 +48,7 @@ import cz.nic.tablexia.loader.application.ApplicationAtlasManager; import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.model.game.Game; +import cz.nic.tablexia.util.MusicUtil; import cz.nic.tablexia.util.ScaleUtil; import cz.nic.tablexia.util.ui.AnimatedImage; import cz.nic.tablexia.util.ui.ClickListenerWithSound; @@ -61,6 +62,8 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { private static final float RULE_MESSAGE_PAPER_WIDTH = 0.6f; private static final float RULE_MESSAGE_TEXT_PADDING = 0.07f; + private static final float RULE_SOUND_DELAY = 1.0f; + private static final float RULE_SOUND_FADE_OUT_TIME = 0.5f; private static final float RULE_MESSAGE_FADE_OUT_TIME = 0.5f; private static final float HELP_OVERLAY_FADE_IN_TIME = 0.5f; private static final float MAP_FADE_IN_TIME = 0.5f; @@ -146,6 +149,7 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { super.onClick(event, x, y); ruleMessage.addAction(new SequenceAction(Actions.fadeOut(RULE_MESSAGE_FADE_OUT_TIME), Actions.visible(false))); + stopRuleSound(RULE_SOUND_FADE_OUT_TIME); map.addAction(Actions.sequence(Actions.delay(RULE_MESSAGE_FADE_OUT_TIME + GAME_DELAY), Actions.run(new Runnable() { @@ -196,11 +200,27 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { ruleMessageShown = true; } + private void playRuleSound(float delay) { + addAction(new SequenceAction(Actions.delay(delay), Actions.run(new Runnable() { + @Override + public void run() { + getRuleSound().play(); + } + }))); + } + + private void stopRuleSound(float fadeoutTime) { + if(getRuleSound().isPlaying()) { + MusicUtil.fadeOut(getRuleSound(), fadeoutTime); + } + } + @Override protected void gameVisible() { // center first tile and start game if(!ruleMessageShown) { showRuleMessage(); + playRuleSound(RULE_SOUND_DELAY); } else { map.addAction(Actions.sequence(Actions.delay(RULE_MESSAGE_FADE_OUT_TIME + GAME_DELAY), @@ -314,8 +334,8 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { return sfxLibrary; } - public String getRuleSound() { - return Properties.GAMERULE_HELP_SOUNDS[getGameDifficulty().ordinal()]; + private Music getRuleSound() { + return getMusic(Properties.GAMERULE_HELP_SOUNDS[getGameDifficulty().getDifficultyNumber() - 1]); } @Override diff --git a/core/src/cz/nic/tablexia/game/games/kidnapping/Properties.java b/core/src/cz/nic/tablexia/game/games/kidnapping/Properties.java index 6e0d7a17e..7a974c366 100644 --- a/core/src/cz/nic/tablexia/game/games/kidnapping/Properties.java +++ b/core/src/cz/nic/tablexia/game/games/kidnapping/Properties.java @@ -21,6 +21,8 @@ public class Properties { private static final int[] GAMERULES_CUPS_HARD = GAMERULES_CUPS_MEDIUM; public static final int[][] GAMERULE_CUPS = {GAMERULES_CUPS_EASY, GAMERULES_CUPS_MEDIUM, GAMERULES_CUPS_HARD}; + public static final String LOADING_SOUND = "mfx/help/loading.mp3"; + static final String[] GAMERULE_HELP_SOUNDS = new String[]{"mfx/help/rulehelp_easy.mp3", "mfx/help/rulehelp_medium.mp3", "mfx/help/rulehelp_hard.mp3"}; static final String[] RESULT_SOUNDS = new String[]{"mfx/result/result_0.mp3", "mfx/result/result_1.mp3", "mfx/result/result_2.mp3", "mfx/result/result_3.mp3"}; static final String[] RESULT_TEXT = new String[]{"game_kidnapping_result_0", "game_kidnapping_result_1", "game_kidnapping_result_2", "game_kidnapping_result_3"}; -- GitLab