Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Següent revisió | Revisió prèvia | ||
libgdx_jsyn [2025/03/02 23:25] enric_mieza_sanchez creat |
libgdx_jsyn [2025/03/03 00:24] (actual) enric_mieza_sanchez [Projecte libGDX amb JSyn] |
||
---|---|---|---|
Línia 13: | Línia 13: | ||
===== Projecte libGDX amb JSyn ===== | ===== Projecte libGDX amb JSyn ===== | ||
- | A la [[https:// | + | Referències: |
+ | * Integrar [[https:// | ||
+ | * Integrar | ||
- | Per aconseguir posar en marxa un projecte libGDX i emprar JSyn per al sons, es pot seguir aquesta guia. | + | Per aconseguir posar en marxa un projecte libGDX i emprar JSyn per al sons cal crear un objecte personalitzat segons la plataforma. Mentre en Java estàndard |
+ | Synthesizer synth = JSyn.createSynthesizer(); | ||
+ | |||
+ | En Android cal fer: | ||
+ | Synthesizer synth = JSyn.createSynthesizer(new AndroidAudioForJSyn()); | ||
+ | |||
+ | La resta del codi és igual. Per tant, caldrà fer una modificació dels // | ||
- Crear un [[jocs_libGDX|projecte libGDX]] amb el gdx-liftoff. | - Crear un [[jocs_libGDX|projecte libGDX]] amb el gdx-liftoff. | ||
- | - Afegir el repositori maven a Gradle:< | + | - Afegir el repositori maven a Gradle |
+ | repositories { | ||
+ | maven { url " | ||
+ | } | ||
+ | </ | ||
+ | - Afegir biblioteques als mòduls '' | ||
+ | dependencies { | ||
+ | implementation " | ||
+ | } | ||
+ | </ | ||
+ | - Modificar constructor del joc libGDX:< | ||
+ | import com.jsyn.Synthesizer; | ||
+ | import com.jsyn.devices.AudioDeviceManager; | ||
+ | |||
+ | public class Main extends ApplicationAdapter { | ||
+ | private Synthesizer synth; | ||
+ | public Main(AudioDeviceManager device) { | ||
+ | if( device==null ) { | ||
+ | synth = JSyn.createSynthesizer(); | ||
+ | } else { | ||
+ | synth = JSyn.createSynthesizer(device); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - Modificar el // | ||
+ | /** Launches the desktop (LWJGL3) application. */ | ||
+ | public class Lwjgl3Launcher { | ||
+ | // ... | ||
+ | private static Lwjgl3Application createApplication() { | ||
+ | return new Lwjgl3Application(new Main(null), getDefaultConfiguration()); | ||
+ | } | ||
+ | //... | ||
+ | </ | ||
+ | - Modificar el // | ||
+ | /** Launches the Android application. */ | ||
+ | public class AndroidLauncher extends AndroidApplication { | ||
+ | @Override | ||
+ | protected void onCreate(Bundle savedInstanceState) { | ||
+ | // ... | ||
+ | AndroidAudioForJSyn device = new AndroidAudioForJSyn(); | ||
+ | initialize(new Main(device), | ||
+ | // ... | ||
</ | </ | ||
- Descarregar l' | - Descarregar l' | ||
- | - | + | - Implementa el codi comú al mòdul '' |
+ | public class Main extends ApplicationAdapter { | ||
+ | //... | ||
+ | LineOut lineOut; | ||
+ | SineOscillator sineOsc; | ||
+ | |||
+ | @Override | ||
+ | public void create() { | ||
+ | // engeguem el sintetizador | ||
+ | synth.start(); | ||
+ | // Afegir un oscil·lador sinusoïdal | ||
+ | sineOsc = new SineOscillator(); | ||
+ | sineOsc.frequency.set(440); | ||
+ | sineOsc.amplitude.set(0.5); | ||
+ | // Connexió a la sortida d' | ||
+ | lineOut = new LineOut(); | ||
+ | synth.add(sineOsc); | ||
+ | synth.add(lineOut); | ||
+ | sineOsc.output.connect(0, | ||
+ | sineOsc.output.connect(0, | ||
+ | } | ||
+ | | ||
+ | @Override | ||
+ | public void render() { | ||
+ | // al detectar un touch engeguem o apaguem | ||
+ | if( Gdx.input.isTouched() ) { | ||
+ | lineOut.start(); | ||
+ | } else { | ||
+ | lineOut.stop(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - Comprova que funciona tant en Desktop (LWJGL3) com en Android. | ||