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

@ -9,8 +9,8 @@ android {
applicationId 'de.frajul.endlessroll' applicationId 'de.frajul.endlessroll'
minSdkVersion 12 minSdkVersion 12
targetSdkVersion 23 targetSdkVersion 23
versionCode 4 versionCode 5
versionName '0.4.0' versionName '0.5.0'
} }
buildTypes { buildTypes {
release { release {

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.frajul.endlessroll" package="de.frajul.endlessroll"
android:versionCode="4" android:versionCode="5"
android:versionName="0.4.0" > android:versionName="0.5.0" >
<uses-sdk <uses-sdk
android:minSdkVersion="12" android:minSdkVersion="12"

View File

@ -867,20 +867,22 @@ int layout unlock_message 0x7f0a0041
int layout world_button 0x7f0a0042 int layout world_button 0x7f0a0042
int layout worlds 0x7f0a0043 int layout worlds 0x7f0a0043
int mipmap ic_launcher 0x7f0b0000 int mipmap ic_launcher 0x7f0b0000
int raw music_game 0x7f0c0000 int raw music_game_1 0x7f0c0000
int raw music_menu 0x7f0c0001 int raw music_game_2 0x7f0c0001
int raw sound_collect_energy 0x7f0c0002 int raw music_game_3 0x7f0c0002
int raw sound_collect_star 0x7f0c0003 int raw music_menu 0x7f0c0003
int raw sound_countdown 0x7f0c0004 int raw sound_collect_energy 0x7f0c0004
int raw sound_die 0x7f0c0005 int raw sound_collect_star 0x7f0c0005
int raw sound_explosion 0x7f0c0006 int raw sound_countdown 0x7f0c0006
int raw sound_firework 0x7f0c0007 int raw sound_die 0x7f0c0007
int raw sound_goal 0x7f0c0008 int raw sound_explosion 0x7f0c0008
int raw sound_magnet 0x7f0c0009 int raw sound_firework 0x7f0c0009
int raw sound_mushroom 0x7f0c000a int raw sound_goal 0x7f0c000a
int raw sound_place_tool 0x7f0c000b int raw sound_magnet 0x7f0c000b
int raw sound_spring 0x7f0c000c int raw sound_mushroom 0x7f0c000c
int raw sound_stasis 0x7f0c000d int raw sound_place_tool 0x7f0c000d
int raw sound_spring 0x7f0c000e
int raw sound_stasis 0x7f0c000f
int string abc_action_bar_home_description 0x7f0d0000 int string abc_action_bar_home_description 0x7f0d0000
int string abc_action_bar_home_description_format 0x7f0d0001 int string abc_action_bar_home_description_format 0x7f0d0001
int string abc_action_bar_home_subtitle_description_format 0x7f0d0002 int string abc_action_bar_home_subtitle_description_format 0x7f0d0002

View File

@ -435,18 +435,5 @@
</stars> </stars>
<energy x="18.570074" y="0.46666658"/> <energy x="18.570074" y="0.46666658"/>
</level> </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> </levels>
</levelPack> </levelPack>

View File

@ -88,7 +88,8 @@ public class Game extends Rendering<GameScene> {
this.level = level; this.level = level;
this.levelPack = levelPack; this.levelPack = levelPack;
if (scene != null) { if (scene != null) {
gameActivity.getSoundManager().gameMusic.reset(); gameActivity.getSoundManager().getCurrentGameMusic().reset();
gameActivity.getSoundManager().randomizeCurrentGameMusic();
gameState = GameState.COUNTDOWN; gameState = GameState.COUNTDOWN;
gameActivity.getTutorialManager().resetGameTutorials(); gameActivity.getTutorialManager().resetGameTutorials();
collectedStars.clear(); collectedStars.clear();
@ -108,7 +109,7 @@ public class Game extends Rendering<GameScene> {
public void countdownFinished() { public void countdownFinished() {
gameActivity.getSoundManager().resumeAllSounds(); gameActivity.getSoundManager().resumeAllSounds();
gameActivity.getSoundManager().gameMusic.start(); gameActivity.getSoundManager().getCurrentGameMusic().start();
gameState = GameState.RUNNING; 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) if (gameState == GameState.GAME_OVER || gameState == GameState.LEVEL_FINISHED || gameState == GameState.PAUSED)
return; return;
gameActivity.getSoundManager().pauseAllSounds(); gameActivity.getSoundManager().pauseAllSounds();
gameActivity.getSoundManager().gameMusic.pause(); gameActivity.getSoundManager().getCurrentGameMusic().pause();
viewManager.showShortMenu(); viewManager.showShortMenu();
if (gameState == GameState.COUNTDOWN) if (gameState == GameState.COUNTDOWN)
viewManager.stopCountdown(); viewManager.stopCountdown();
@ -232,7 +233,7 @@ public class Game extends Rendering<GameScene> {
} }
public void onGameOver(boolean playerExplode) { public void onGameOver(boolean playerExplode) {
gameActivity.getSoundManager().gameMusic.stop(); gameActivity.getSoundManager().getCurrentGameMusic().stop();
gameActivity.getSoundManager().stopAllSounds(); gameActivity.getSoundManager().stopAllSounds();
gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().dieSound); gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().dieSound);
if (playerExplode) { if (playerExplode) {
@ -245,7 +246,7 @@ public class Game extends Rendering<GameScene> {
} }
private void onGoalReached() { private void onGoalReached() {
gameActivity.getSoundManager().gameMusic.stop(); gameActivity.getSoundManager().getCurrentGameMusic().stop();
gameActivity.getSoundManager().stopAllSounds(); gameActivity.getSoundManager().stopAllSounds();
gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().goalSound); gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().goalSound);

View File

@ -3,9 +3,11 @@ package de.frajul.endlessroll.sounds;
import android.content.Context; import android.content.Context;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.SoundPool; import android.media.SoundPool;
import android.support.annotation.RawRes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import de.frajul.endlessroll.R; import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity; import de.frajul.endlessroll.main.GameActivity;
@ -17,12 +19,14 @@ import de.frajul.endlessroll.main.GameLog;
public class SoundManager { public class SoundManager {
private Context context; private Context context;
private Random random;
private SoundPool soundPool; private SoundPool soundPool;
private boolean soundsMuted; private boolean soundsMuted;
private boolean musicMuted; private boolean musicMuted;
public final Music menuMusic; 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 goalSound;
public final Sound dieSound; public final Sound dieSound;
@ -39,14 +43,16 @@ public class SoundManager {
private List<SoundStream> allStartedStreams = new ArrayList<>(); private List<SoundStream> allStartedStreams = new ArrayList<>();
public SoundManager(GameActivity activity) { public SoundManager(GameActivity gameActivity) {
this.context = activity; this.context = gameActivity;
random = new Random();
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 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); menuMusic.getPlayer().setLooping(true);
gameMusic = new Music(activity, context, R.raw.music_game); gameMusicList.add(createGameMusic(gameActivity, R.raw.music_game_1));
gameMusic.getPlayer().setLooping(true); 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)); goalSound = new Sound(loadSound(R.raw.sound_goal));
dieSound = new Sound(loadSound(R.raw.sound_die)); 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); 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) { public void setSoundsMuted(boolean soundsMuted) {
this.soundsMuted = soundsMuted; this.soundsMuted = soundsMuted;
for (SoundStream stream : allStartedStreams) { for (SoundStream stream : allStartedStreams) {
@ -74,6 +96,7 @@ public class SoundManager {
public void setMusicMuted(boolean musicMuted) { public void setMusicMuted(boolean musicMuted) {
this.musicMuted = musicMuted; this.musicMuted = musicMuted;
menuMusic.setMuted(musicMuted); menuMusic.setMuted(musicMuted);
for (Music gameMusic : gameMusicList)
gameMusic.setMuted(musicMuted); gameMusic.setMuted(musicMuted);
} }
@ -87,12 +110,14 @@ public class SoundManager {
public void activityPause() { public void activityPause() {
soundPool.autoPause(); soundPool.autoPause();
for (Music gameMusic : gameMusicList)
gameMusic.activityPause(); gameMusic.activityPause();
menuMusic.activityPause(); menuMusic.activityPause();
} }
public void activityResume() { public void activityResume() {
soundPool.autoResume(); soundPool.autoResume();
for (Music gameMusic : gameMusicList)
gameMusic.activityResume(); gameMusic.activityResume();
menuMusic.activityResume(); menuMusic.activityResume();
} }
@ -109,6 +134,7 @@ public class SoundManager {
public void destroy() { public void destroy() {
menuMusic.getPlayer().release(); menuMusic.getPlayer().release();
for (Music gameMusic : gameMusicList)
gameMusic.getPlayer().release(); gameMusic.getPlayer().release();
soundPool.release(); soundPool.release();
} }

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.