diff --git a/app/build.gradle b/app/build.gradle
index 991d437..021c5ee 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId 'de.frajul.endlessroll'
minSdkVersion 12
targetSdkVersion 23
- versionCode 4
- versionName '0.4.0'
+ versionCode 5
+ versionName '0.5.0'
}
buildTypes {
release {
diff --git a/app/build/intermediates/incremental/mergeDebugResources/merger.xml b/app/build/intermediates/incremental/mergeDebugResources/merger.xml
index e8ea3e2..56391fa 100644
--- a/app/build/intermediates/incremental/mergeDebugResources/merger.xml
+++ b/app/build/intermediates/incremental/mergeDebugResources/merger.xml
@@ -1346,7 +1346,7 @@
?android:attr/actionMenuTextAppearance@drawable/abc_control_background_material
- "Điều hướng về trang chủ""%1$s, %2$s""%1$s, %2$s, %3$s""Điều hướng lên trên""Thêm tùy chọn""Xong""Xem tất cả""Chọn một ứng dụng""TẮT""BẬT""Tìm kiếm…""Xóa truy vấn""Tìm kiếm truy vấn""Tìm kiếm""Gửi truy vấn""Tìm kiếm bằng giọng nói""Chia sẻ với""Chia sẻ với %s""Thu gọn""999+"3truetrue4192dip5falsefalse60%90%50%70%45%72%192dip5256dip"转到主屏幕""%1$s:%2$s""%1$s - %2$s:%3$s""转到上一层级""更多选项""完成""查看全部""选择应用""关闭""开启""搜索…""清除查询""搜索查询""搜索""提交查询""语音搜索""分享方式""通过%s分享""收起""999+""瀏覽主頁""%1$s:%2$s""%1$s (%2$s):%3$s""向上瀏覽""更多選項""完成""顯示全部""選擇應用程式""關閉""開啟""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""分享對象""與「%s」分享""收合""999 +""瀏覽首頁""%1$s:%2$s""%1$s - %2$s:%3$s""向上瀏覽""更多選項""完成""查看全部""選擇應用程式""關閉""開啟""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""選擇分享對象""與「%s」分享""收合""999+""Zulazulela ekhaya""%1$s, %2$s""%1$s, %2$s, %3$s""Zulazulela phezulu""Izinketho eziningi""Kwenziwe""Buka konke""Khetha uhlelo lokusebenza""VALIWE""VULIWE""Iyasesha...""Sula inkinga""Umbuzo wosesho""Sesha""Hambisa umbuzo""Ukusesha ngezwi""Yabelana no-""Yabelana no-%s""Goqa""999+"
+ "Điều hướng về trang chủ""%1$s, %2$s""%1$s, %2$s, %3$s""Điều hướng lên trên""Thêm tùy chọn""Xong""Xem tất cả""Chọn một ứng dụng""TẮT""BẬT""Tìm kiếm…""Xóa truy vấn""Tìm kiếm truy vấn""Tìm kiếm""Gửi truy vấn""Tìm kiếm bằng giọng nói""Chia sẻ với""Chia sẻ với %s""Thu gọn""999+"3truetrue4192dip5falsefalse60%90%50%70%45%72%192dip5256dip"转到主屏幕""%1$s:%2$s""%1$s - %2$s:%3$s""转到上一层级""更多选项""完成""查看全部""选择应用""关闭""开启""搜索…""清除查询""搜索查询""搜索""提交查询""语音搜索""分享方式""通过%s分享""收起""999+""瀏覽主頁""%1$s:%2$s""%1$s (%2$s):%3$s""向上瀏覽""更多選項""完成""顯示全部""選擇應用程式""關閉""開啟""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""分享對象""與「%s」分享""收合""999 +""瀏覽首頁""%1$s:%2$s""%1$s - %2$s:%3$s""向上瀏覽""更多選項""完成""查看全部""選擇應用程式""關閉""開啟""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""選擇分享對象""與「%s」分享""收合""999+""Zulazulela ekhaya""%1$s, %2$s""%1$s, %2$s, %3$s""Zulazulela phezulu""Izinketho eziningi""Kwenziwe""Buka konke""Khetha uhlelo lokusebenza""VALIWE""VULIWE""Iyasesha...""Sula inkinga""Umbuzo wosesho""Sesha""Hambisa umbuzo""Ukusesha ngezwi""Yabelana no-""Yabelana no-%s""Goqa""999+"World zer0GrasslandsIcy Mountains
@@ -1371,4 +1371,4 @@
@drawable/xml_background_tutorialtextview@color/black15sp
- Drück mich!Ich bin ein Text!ZIEL ERREICHTZum MenüErneut versuchenNeustartNächstes LevelNeustart: Level %dNächstes Level: %dGehe zur nächsten Welt:\n%sLÄDT...WeiterNeustartBeendenSpielenErste Welt abschließen!Zeit (Lv12)Fortschritt zurücksetzenRampe freigeschaltetHammer Welt!%s freigeschaltet!KaufenUpgradeBallUhrHypnosePacmanSmileyReifenSonneLevel: %dLass dich hypnotisieren!Ein krasses Auto ohne ... AutoLass dir die Sonne ins Gesicht scheinenSammle %d Sterne (%d/%d)Sammle %d Energie (%d/%d)Sammle %d SterneSammle %d EnergieBeende die %d. WeltEinfach rollen!Katapultiert dich in die LuftDu wirst von ihm angezogen. Das ist fast schon Magie!Jage Hindernisse in die LuftGibt dir für ein paar Sekunden Superkräfte!Friert die Luft ein, wodurch du länger fliegstRampeFederMagnetBombePilzStaseNichtsZeitRadiusKraftJaNeinDer allerschönste Platzhalter für einen ConfirmDialog!Willst du wirklich das Spiel beenden?Willst du wirklich deinen gesamten Fortschritt zurücksetzen?Willst du wirklich die erste Welt abschließen? Dadurch wird dein alter Fortschritt GELÖSCHT!Das ist ein Platzhalter über mehrere Zeilen - Extra für Tutorials! Das haut dich um!Willkommen bei Endless Roll! Viel Spaß!Klicke irgendwo auf den Bildschirm, um dort die Rampe zu setzenSuper! Jetzt setze sie vor das HindernisVersuch es erneut!Sehr gut! Jetzt schaffst du bestimmt das nächste LevelAufgabe abgeschlossenToolsToolshopNeuer Slot freigeschaltetNeues Aussehen freigeschaltetEin neues Aussehen und noch viel mehr SpaßLeere AufgabeErreiche Level %d, um dieses Tool freizuschaltenDu kannst Tools auch mitten in der Luft setzen. Achte auf das richtige Timing!Glückwunsch! Du bist ein Level aufgestiegen! Jetzt gehe in den ToolshopFür dieses Level müssen zwei Tools ausgerüstet seinUm ein Tool auszuwählen, klicke einfach daraufSetzte die Rampe vor die Lücke
\ No newline at end of file
+ Drück mich!Ich bin ein Text!ZIEL ERREICHTZum MenüErneut versuchenNeustartNächstes LevelNeustart: Level %dNächstes Level: %dGehe zur nächsten Welt:\n%sLÄDT...WeiterNeustartBeendenSpielenErste Welt abschließen!Zeit (Lv12)Fortschritt zurücksetzenRampe freigeschaltetHammer Welt!%s freigeschaltet!KaufenUpgradeBallUhrHypnosePacmanSmileyReifenSonneLevel: %dLass dich hypnotisieren!Ein krasses Auto ohne ... AutoLass dir die Sonne ins Gesicht scheinenSammle %d Sterne (%d/%d)Sammle %d Energie (%d/%d)Sammle %d SterneSammle %d EnergieBeende die %d. WeltEinfach rollen!Katapultiert dich in die LuftDu wirst von ihm angezogen. Das ist fast schon Magie!Jage Hindernisse in die LuftGibt dir für ein paar Sekunden Superkräfte!Friert die Luft ein, wodurch du länger fliegstRampeFederMagnetBombePilzStaseNichtsZeitRadiusKraftJaNeinDer allerschönste Platzhalter für einen ConfirmDialog!Willst du wirklich das Spiel beenden?Willst du wirklich deinen gesamten Fortschritt zurücksetzen?Willst du wirklich die erste Welt abschließen? Dadurch wird dein alter Fortschritt GELÖSCHT!Das ist ein Platzhalter über mehrere Zeilen - Extra für Tutorials! Das haut dich um!Willkommen bei Endless Roll! Viel Spaß!Klicke irgendwo auf den Bildschirm, um dort die Rampe zu setzenSuper! Jetzt setze sie vor das HindernisVersuch es erneut!Sehr gut! Jetzt schaffst du bestimmt das nächste LevelAufgabe abgeschlossenToolsToolshopNeuer Slot freigeschaltetNeues Aussehen freigeschaltetEin neues Aussehen und noch viel mehr SpaßLeere AufgabeErreiche Level %d, um dieses Tool freizuschaltenDu kannst Tools auch mitten in der Luft setzen. Achte auf das richtige Timing!Glückwunsch! Du bist ein Level aufgestiegen! Jetzt gehe in den ToolshopFür dieses Level müssen zwei Tools ausgerüstet seinUm ein Tool auszuwählen, klicke einfach daraufSetzte die Rampe vor die Lücke
\ No newline at end of file
diff --git a/app/build/intermediates/manifests/full/debug/AndroidManifest.xml b/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
index 4edcdd7..2002bcb 100644
--- a/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
+++ b/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ android:versionCode="5"
+ android:versionName="0.5.0" >
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/de/frajul/endlessroll/main/game/Game.java b/app/src/main/java/de/frajul/endlessroll/main/game/Game.java
index 9b3d576..fa428b9 100644
--- a/app/src/main/java/de/frajul/endlessroll/main/game/Game.java
+++ b/app/src/main/java/de/frajul/endlessroll/main/game/Game.java
@@ -88,7 +88,8 @@ public class Game extends Rendering {
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 {
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 {
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 {
}
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 {
}
private void onGoalReached() {
- gameActivity.getSoundManager().gameMusic.stop();
+ gameActivity.getSoundManager().getCurrentGameMusic().stop();
gameActivity.getSoundManager().stopAllSounds();
gameActivity.getSoundManager().playSound(gameActivity.getSoundManager().goalSound);
diff --git a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
index a2b610d..bc45e35 100644
--- a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
+++ b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
@@ -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 gameMusicList = new ArrayList<>();
+ private int currentGameMusicIndex = 0;
public final Sound goalSound;
public final Sound dieSound;
@@ -39,14 +43,16 @@ public class SoundManager {
private List 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();
}
diff --git a/app/src/main/res/layout/start_screen.xml b/app/src/main/res/layout/start_screen.xml
index 20b72f0..7f7e90c 100644
--- a/app/src/main/res/layout/start_screen.xml
+++ b/app/src/main/res/layout/start_screen.xml
@@ -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"/>
+ android:visibility="gone"/>
+ android:visibility="gone"/>
\ No newline at end of file
diff --git a/app/src/main/res/raw/music_game.mp3 b/app/src/main/res/raw/music_game_1.mp3
similarity index 100%
rename from app/src/main/res/raw/music_game.mp3
rename to app/src/main/res/raw/music_game_1.mp3
diff --git a/app/src/main/res/raw/music_game_2.mp3 b/app/src/main/res/raw/music_game_2.mp3
new file mode 100644
index 0000000..97e0951
Binary files /dev/null and b/app/src/main/res/raw/music_game_2.mp3 differ
diff --git a/app/src/main/res/raw/music_game_3.mp3 b/app/src/main/res/raw/music_game_3.mp3
new file mode 100644
index 0000000..8c3f537
Binary files /dev/null and b/app/src/main/res/raw/music_game_3.mp3 differ
diff --git a/app/src/main/res/raw/music_menu.mp3 b/app/src/main/res/raw/music_menu.mp3
new file mode 100644
index 0000000..0f6ad09
Binary files /dev/null and b/app/src/main/res/raw/music_menu.mp3 differ
diff --git a/app/src/main/res/raw/music_menu.wav b/app/src/main/res/raw/music_menu.wav
deleted file mode 100644
index e19b877..0000000
Binary files a/app/src/main/res/raw/music_menu.wav and /dev/null differ