Added randomly changing gamemusic and changed menu music -> Version 0.5.0
This commit is contained in:
@ -88,7 +88,8 @@ public class Game extends Rendering<GameScene> {
|
||||
this.level = level;
|
||||
this.levelPack = levelPack;
|
||||
if (scene != null) {
|
||||
gameActivity.getSoundManager().gameMusic.reset();
|
||||
gameActivity.getSoundManager().getCurrentGameMusic().reset();
|
||||
gameActivity.getSoundManager().randomizeCurrentGameMusic();
|
||||
gameState = GameState.COUNTDOWN;
|
||||
gameActivity.getTutorialManager().resetGameTutorials();
|
||||
collectedStars.clear();
|
||||
@ -108,7 +109,7 @@ public class Game extends Rendering<GameScene> {
|
||||
|
||||
public void countdownFinished() {
|
||||
gameActivity.getSoundManager().resumeAllSounds();
|
||||
gameActivity.getSoundManager().gameMusic.start();
|
||||
gameActivity.getSoundManager().getCurrentGameMusic().start();
|
||||
gameState = GameState.RUNNING;
|
||||
}
|
||||
|
||||
@ -207,7 +208,7 @@ public class Game extends Rendering<GameScene> {
|
||||
if (gameState == GameState.GAME_OVER || gameState == GameState.LEVEL_FINISHED || gameState == GameState.PAUSED)
|
||||
return;
|
||||
gameActivity.getSoundManager().pauseAllSounds();
|
||||
gameActivity.getSoundManager().gameMusic.pause();
|
||||
gameActivity.getSoundManager().getCurrentGameMusic().pause();
|
||||
viewManager.showShortMenu();
|
||||
if (gameState == GameState.COUNTDOWN)
|
||||
viewManager.stopCountdown();
|
||||
@ -232,7 +233,7 @@ public class Game extends Rendering<GameScene> {
|
||||
}
|
||||
|
||||
public void onGameOver(boolean playerExplode) {
|
||||
gameActivity.getSoundManager().gameMusic.stop();
|
||||
gameActivity.getSoundManager().getCurrentGameMusic().stop();
|
||||
gameActivity.getSoundManager().stopAllSounds();
|
||||
gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().dieSound);
|
||||
if (playerExplode) {
|
||||
@ -245,7 +246,7 @@ public class Game extends Rendering<GameScene> {
|
||||
}
|
||||
|
||||
private void onGoalReached() {
|
||||
gameActivity.getSoundManager().gameMusic.stop();
|
||||
gameActivity.getSoundManager().getCurrentGameMusic().stop();
|
||||
gameActivity.getSoundManager().stopAllSounds();
|
||||
gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().goalSound);
|
||||
|
||||
|
@ -3,9 +3,11 @@ package de.frajul.endlessroll.sounds;
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.media.SoundPool;
|
||||
import android.support.annotation.RawRes;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import de.frajul.endlessroll.R;
|
||||
import de.frajul.endlessroll.main.GameActivity;
|
||||
@ -17,12 +19,14 @@ import de.frajul.endlessroll.main.GameLog;
|
||||
public class SoundManager {
|
||||
|
||||
private Context context;
|
||||
private Random random;
|
||||
private SoundPool soundPool;
|
||||
private boolean soundsMuted;
|
||||
private boolean musicMuted;
|
||||
|
||||
public final Music menuMusic;
|
||||
public final Music gameMusic;
|
||||
private List<Music> gameMusicList = new ArrayList<>();
|
||||
private int currentGameMusicIndex = 0;
|
||||
|
||||
public final Sound goalSound;
|
||||
public final Sound dieSound;
|
||||
@ -39,14 +43,16 @@ public class SoundManager {
|
||||
|
||||
private List<SoundStream> allStartedStreams = new ArrayList<>();
|
||||
|
||||
public SoundManager(GameActivity activity) {
|
||||
this.context = activity;
|
||||
public SoundManager(GameActivity gameActivity) {
|
||||
this.context = gameActivity;
|
||||
random = new Random();
|
||||
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
|
||||
|
||||
menuMusic = new Music(activity, activity, R.raw.music_menu);
|
||||
menuMusic = new Music(gameActivity, gameActivity, R.raw.music_menu);
|
||||
menuMusic.getPlayer().setLooping(true);
|
||||
gameMusic = new Music(activity, context, R.raw.music_game);
|
||||
gameMusic.getPlayer().setLooping(true);
|
||||
gameMusicList.add(createGameMusic(gameActivity, R.raw.music_game_1));
|
||||
gameMusicList.add(createGameMusic(gameActivity, R.raw.music_game_2));
|
||||
gameMusicList.add(createGameMusic(gameActivity, R.raw.music_game_3));
|
||||
|
||||
goalSound = new Sound(loadSound(R.raw.sound_goal));
|
||||
dieSound = new Sound(loadSound(R.raw.sound_die));
|
||||
@ -62,6 +68,22 @@ public class SoundManager {
|
||||
magnetSound = new Sound(loadSound(R.raw.sound_magnet), 0.8f, true);
|
||||
}
|
||||
|
||||
private Music createGameMusic(GameActivity gameActivity, @RawRes int musicId) {
|
||||
Music gameMusic = new Music(gameActivity, context, musicId);
|
||||
gameMusic.getPlayer().setLooping(true);
|
||||
return gameMusic;
|
||||
}
|
||||
|
||||
public void randomizeCurrentGameMusic() {
|
||||
getCurrentGameMusic().stop();
|
||||
int randomIndex = random.nextInt(gameMusicList.size());
|
||||
currentGameMusicIndex = randomIndex;
|
||||
}
|
||||
|
||||
public Music getCurrentGameMusic() {
|
||||
return gameMusicList.get(currentGameMusicIndex);
|
||||
}
|
||||
|
||||
public void setSoundsMuted(boolean soundsMuted) {
|
||||
this.soundsMuted = soundsMuted;
|
||||
for (SoundStream stream : allStartedStreams) {
|
||||
@ -74,7 +96,8 @@ public class SoundManager {
|
||||
public void setMusicMuted(boolean musicMuted) {
|
||||
this.musicMuted = musicMuted;
|
||||
menuMusic.setMuted(musicMuted);
|
||||
gameMusic.setMuted(musicMuted);
|
||||
for (Music gameMusic : gameMusicList)
|
||||
gameMusic.setMuted(musicMuted);
|
||||
}
|
||||
|
||||
public boolean isSoundsMuted() {
|
||||
@ -87,13 +110,15 @@ public class SoundManager {
|
||||
|
||||
public void activityPause() {
|
||||
soundPool.autoPause();
|
||||
gameMusic.activityPause();
|
||||
for (Music gameMusic : gameMusicList)
|
||||
gameMusic.activityPause();
|
||||
menuMusic.activityPause();
|
||||
}
|
||||
|
||||
public void activityResume() {
|
||||
soundPool.autoResume();
|
||||
gameMusic.activityResume();
|
||||
for (Music gameMusic : gameMusicList)
|
||||
gameMusic.activityResume();
|
||||
menuMusic.activityResume();
|
||||
}
|
||||
|
||||
@ -109,7 +134,8 @@ public class SoundManager {
|
||||
|
||||
public void destroy() {
|
||||
menuMusic.getPlayer().release();
|
||||
gameMusic.getPlayer().release();
|
||||
for (Music gameMusic : gameMusicList)
|
||||
gameMusic.getPlayer().release();
|
||||
soundPool.release();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user