Added randomly changing gamemusic and changed menu music -> Version 0.5.0

This commit is contained in:
=
2018-02-15 15:43:11 +01:00
parent be1ec63e32
commit 3239a54ee9
13 changed files with 67 additions and 51 deletions

View File

@ -435,18 +435,5 @@
</stars>
<energy x="18.570074" y="0.46666658"/>
</level>
<level packId="2" id="7" goalX="3.0" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList"/>
<stars class="java.util.ArrayList">
<positionData x="0.3066666" y="-0.37999997"/>
</stars>
<energy x="1.9466664" y="-0.3933333"/>
</level>
</levels>
</levelPack>

View File

@ -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);

View File

@ -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();
}

View File

@ -26,7 +26,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="2dp"
android:text="@string/start_screen_unlock_all_levels"
android:visibility="visible"/>
android:visibility="gone"/>
<Button
android:id="@+id/startscreen_gain_90_ep"
@ -39,7 +39,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="2dp"
android:text="@string/start_screen_gain_90_ep"
android:visibility="visible"/>
android:visibility="gone"/>
<Button
android:id="@+id/startscreen_finish_world_1"
@ -63,6 +63,6 @@
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:text="@string/start_screen_to_gl_test_screen"
android:visibility="visible"/>
android:visibility="gone"/>
</RelativeLayout>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.