Permalink
Browse files

Manejador de sonidos agregado, solo corre una vez el sonido, agregado…

… LRUCache
  • Loading branch information...
1 parent 73ce0cd commit 3d8a62c94a4c46ccb8f963d4db2a6f2592daeb3e @Luraguse Luraguse committed May 6, 2013
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.lumpundform.lumpundform"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="16" />
-
- <application
- android:icon="@drawable/ic_launcher"
- android:label="Lumpundform" >
- <activity
- android:name=".MainActivity"
- android:label="Lumpundform"
- android:screenOrientation="landscape"
- android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
-</manifest>
Binary file not shown.
Binary file not shown.
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.lumpundform.lumpundform"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="16" />
-
- <application
- android:icon="@drawable/ic_launcher"
- android:label="Lumpundform" >
- <activity
- android:name=".MainActivity"
- android:label="Lumpundform"
- android:screenOrientation="landscape"
- android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
-</manifest>
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" combineaccessrules="false" path="/lumpundform"/>
- <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="/lumpundform/libs/bodyeditor-loader.jar" sourcepath="/lumpundform/libs/bodyeditor-loader-sources.jar"/>
- <classpathentry kind="lib" path="/lumpundform/libs/bodyeditor-loader-sources.jar"/>
- <classpathentry kind="lib" path="/lumpundform/libs/gdx.jar" sourcepath="/lumpundform/libs/gdx-sources.jar"/>
- <classpathentry kind="lib" path="/lumpundform/libs/gdx-sources.jar"/>
- <classpathentry kind="lib" path="war/WEB-INF/lib/gdx-backend-gwt.jar" sourcepath="war/WEB-INF/lib/gdx-backend-gwt-sources.jar"/>
- <classpathentry kind="lib" path="war/WEB-INF/lib/gdx-backend-gwt-sources.jar"/>
- <classpathentry kind="lib" path="/lumpundform/libs/tween-engine-api.jar" sourcepath="/lumpundform/libs/tween-engine-api-sources.jar"/>
- <classpathentry kind="lib" path="/lumpundform/libs/tween-engine-api-sources.jar"/>
- <classpathentry kind="output" path="war/WEB-INF/classes"/>
-</classpath>
@@ -1,80 +1,67 @@
-package com.lumpundform.audio;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.audio.Music;
-import com.badlogic.gdx.files.FileHandle;
-import com.badlogic.gdx.utils.Disposable;
-
-public class MusicManager implements Disposable {
-
- public enum MusicaDisponible {
- CASTLEVANIA("musica/castlevania.mp3"), DT("musica/dt.mp3");
-
- private final String nombreArchivo;
-
- private MusicaDisponible(String nombreArchivo) {
- this.nombreArchivo = nombreArchivo;
- }
-
- public String getNombreArchivo() {
- return nombreArchivo;
- }
- }
-
- private Music musicaEnCurso;
- private float volumen = 1f;
- private boolean habilitado = true;
-
- public MusicManager() {
-
- }
-
- public void play(MusicaDisponible musica) {
- if (!habilitado)
- return;
-
- stop();
-
- FileHandle archivoMusica = Gdx.files.internal(musica.getNombreArchivo());
- musicaEnCurso = Gdx.audio.newMusic(archivoMusica);
- musicaEnCurso.setVolume(volumen);
- musicaEnCurso.setLooping(true);
- musicaEnCurso.play();
- }
-
- public void stop() {
- if (musicaEnCurso != null) {
- musicaEnCurso.stop();
- musicaEnCurso.dispose();
- }
- }
-
- public void cambiarMusica() {
- musicaEnCurso.stop();
-
- }
-
- public void acomodarVolumen(float volumen) {
- this.volumen = volumen;
-
- if (musicaEnCurso != null)
- musicaEnCurso.setVolume(volumen);
- }
-
- public void setHabilitado(boolean habilitado) {
- this.habilitado = habilitado;
-
- if (!habilitado)
- stop();
- }
-
- @Override
- public void dispose() {
- stop();
- }
-
- public void siguiente() {
- play(MusicaDisponible.DT);
- }
-
-}
+package com.lumpundform.audio;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.audio.Music;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.Disposable;
+
+public class ManejadorDeMusica implements Disposable {
+
+ private Music musicaEnCurso;
+ private float volumen = 1f;
+ private boolean habilitado = true;
+
+ public ManejadorDeMusica() {
+
+ }
+
+ public void play(MusicaDisponible musica) {
+ if (!habilitado)
+ return;
+
+ stop();
+
+ FileHandle archivoMusica = Gdx.files
+ .internal(musica.getNombreArchivo());
+ musicaEnCurso = Gdx.audio.newMusic(archivoMusica);
+ musicaEnCurso.setVolume(volumen);
+ musicaEnCurso.setLooping(true);
+ musicaEnCurso.play();
+ }
+
+ public void stop() {
+ if (musicaEnCurso != null) {
+ musicaEnCurso.stop();
+ musicaEnCurso.dispose();
+ }
+ }
+
+ public void cambiarMusica() {
+ musicaEnCurso.stop();
+
+ }
+
+ public void acomodarVolumen(float volumen) {
+ this.volumen = volumen;
+
+ if (musicaEnCurso != null)
+ musicaEnCurso.setVolume(volumen);
+ }
+
+ public void setHabilitado(boolean habilitado) {
+ this.habilitado = habilitado;
+
+ if (!habilitado)
+ stop();
+ }
+
+ @Override
+ public void dispose() {
+ stop();
+ }
+
+ public void siguiente() {
+ play(MusicaDisponible.DT);
+ }
+
+}
@@ -0,0 +1,63 @@
+package com.lumpundform.audio;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.audio.Sound;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.Disposable;
+import com.lumpundform.audio.SonidosDisponibles;
+import com.lumpundform.utilerias.LRUCache;
+import com.lumpundform.utilerias.LRUCache.CacheEntryRemovedListener;
+
+public class ManejadorDeSonido implements
+ CacheEntryRemovedListener<SonidosDisponibles, Sound>, Disposable {
+
+ private float volumen = 1f;
+ private boolean habilitado = true;
+
+ private final LRUCache<SonidosDisponibles, Sound> cacheSonido;
+
+ public ManejadorDeSonido() {
+ cacheSonido = new LRUCache<SonidosDisponibles, Sound>(10);
+ cacheSonido.setEntryRemovedListener(this);
+ }
+
+ public void play(SonidosDisponibles sonido) {
+ if (!habilitado)
+ return;
+
+ Sound sonidoParaReproducir = cacheSonido.get(sonido);
+ if (sonidoParaReproducir == null) {
+ FileHandle archivoDeSonido = Gdx.files.internal(sonido
+ .getNombreArchivo());
+ sonidoParaReproducir = Gdx.audio.newSound(archivoDeSonido);
+ cacheSonido.add(sonido, sonidoParaReproducir);
+ sonidoParaReproducir.play(volumen);
+ }
+ }
+
+ public void ajustarVolumen(float volumen) {
+ if (volumen < 0 || volumen > 1f)
+ throw new IllegalArgumentException(
+ "El volumen debe de estar entre 1 y 0.");
+
+ this.volumen = volumen;
+ }
+
+ public void habilitado(boolean habilitado) {
+ this.habilitado = habilitado;
+ }
+
+ @Override
+ public void dispose() {
+ for (Sound sonido : cacheSonido.retrieaveAll()) {
+ sonido.stop();
+ sonido.dispose();
+ }
+ }
+
+ @Override
+ public void notifyEntryRemoved(SonidosDisponibles key, Sound value) {
+ value.dispose();
+ }
+
+}
@@ -0,0 +1,15 @@
+package com.lumpundform.audio;
+
+public enum MusicaDisponible {
+ CASTLEVANIA("musica/castlevania.mp3"), DT("musica/dt.mp3");
+
+ private final String nombreArchivo;
+
+ private MusicaDisponible(String nombreArchivo) {
+ this.nombreArchivo = nombreArchivo;
+ }
+
+ public String getNombreArchivo() {
+ return nombreArchivo;
+ }
+}
@@ -0,0 +1,15 @@
+package com.lumpundform.audio;
+
+public enum SonidosDisponibles {
+ ATAQUE("sonido/open_menu.mp3");
+
+ private final String nombreArchivo;
+
+ private SonidosDisponibles(String nombreArchivo) {
+ this.nombreArchivo = nombreArchivo;
+ }
+
+ public String getNombreArchivo() {
+ return nombreArchivo;
+ }
+}
@@ -23,8 +23,10 @@
import com.lumpundform.actores.Humanoide;
import com.lumpundform.actores.ObjetoActor;
import com.lumpundform.actores.Personaje;
-import com.lumpundform.audio.MusicManager;
-import com.lumpundform.audio.MusicManager.MusicaDisponible;
+import com.lumpundform.audio.ManejadorDeMusica;
+import com.lumpundform.audio.ManejadorDeSonido;
+import com.lumpundform.audio.MusicaDisponible;
+import com.lumpundform.audio.SonidosDisponibles;
import com.lumpundform.colision.Linea;
import com.lumpundform.colision.Poligono;
import com.lumpundform.eventos.Escena;
@@ -58,7 +60,9 @@
private boolean interfazBloqueada = false;
- public MusicManager mm = new MusicManager();
+ public ManejadorDeMusica mm = new ManejadorDeMusica();
+
+ public ManejadorDeSonido ms = new ManejadorDeSonido();
/**
* Inicializa un nuevo escenario con los datos dados. Se inicializa un nuevo
@@ -85,7 +89,8 @@ public EscenarioBase(MapaHelper mh, CamaraJuego camara, boolean stretch, SpriteB
cargarEventos(mh.eventosMapa());
// cargar música
- mm.play(MusicaDisponible.CASTLEVANIA);
+ // mm.play(MusicaDisponible.CASTLEVANIA);
+ // ms.play(SonidosDisponibles.ATAQUE);
setCamera(camara);
Oops, something went wrong.

0 comments on commit 3d8a62c

Please sign in to comment.