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. | ||