libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Sound

সাউন্ড ছাড়া গেমের কথা চিন্তা করা যায়? যায় না। আমার আজ দেখব কিভাবে আমাদের গেমে সাউন্ড ইফেক্ট দেওয়া যায়। ইমেজের মত সাউন্ডও আমাদের Android প্রজেক্টের assets ফোল্ডারে রাখতে হবে। আমরা দুইটা সাউন্ড ফাইল নিয়ে কাজ করব। নিচের লিঙ্ক থেকে ডাউনলোড করা যাবে। অথবা গুগলে সার্চ করেও নিজের পছন্দ মত সাউন্ড ডাউনলোড করতে পারেন। ফ্রিতে ডাউনলোড করা যায়, এমন একটি সাইট হচ্ছে https://freesound.org । নিচের দুটি সাউন্ড এখান থেকেই ডাউনলোড করা।

 

সাউন্ড প্লে  করার জন্য আমাদের প্রথমে তা লোড করতে হবে। এবং পরে প্লে করতে হবে। আমরা আবার বলে দিতে পারি কত বার প্লে হবে।



import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGdxGame extends ApplicationAdapter {
   SpriteBatch batch;
   Texture img;
   private Music audioBG;
   
   @Override
   public void create () {
      batch = new SpriteBatch();
      img = new Texture("badlogic.jpg");

        // Load Sound
      audioBG = Gdx.audio.newMusic(Gdx.files.internal("gameBG.mp3"));

      // start the playback of the background music immediately
      audioBG.setLooping(true);
        // Play
      audioBG.play();

   }

   @Override
   public void render () {
      Gdx.gl.glClearColor(1, 0, 0, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      batch.begin();
      batch.draw(img, 0, 0);
      batch.end();
   }
}

 

Gdx.audio.newMusic(Gdx.files.internal(“gameBG.mp3”)); দিয়ে বলে দিয়েছি কোন সাউন্ডটি লোড করতে। এরপর audioBG.setLooping(true); দিয়ে বলেছি অডিওটি বার বার রান হতে। এবং শেষে প্লে করেছি। আমরা চাইলে যখন কোন ইভেন্ট ঘটবে, তখন সাউন্ড প্লে করতে পারি। যেমন নিজের প্রোগ্রামটিতে উপরের মত একটা ব্যাকগ্রাউন্ড মিউজিক চলার পাশা পাশি যখন স্ক্রিন টাচ করা হবে, তখন টাচ সাউন্ডটি রান হবে।

 


import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGdxGame extends ApplicationAdapter {
   SpriteBatch batch;
   Texture img;
   private Music audioBG, touch;
   
   @Override
   public void create () {
      batch = new SpriteBatch();
      img = new Texture("badlogic.jpg");

        // Load Sound
      audioBG = Gdx.audio.newMusic(Gdx.files.internal("gameBG.mp3"));
      touch = Gdx.audio.newMusic(Gdx.files.internal("touch.mp3"));

      // start the playback of the background music immediately
      audioBG.setLooping(true);
        // Play
      audioBG.play();

   }

   @Override
   public void render () {
      Gdx.gl.glClearColor(1, 0, 0, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      batch.begin();
      batch.draw(img, 0, 0);
      batch.end();

        if(Gdx.input.isTouched()) {
         touch.play();

        }
   }
} 

এখানে যখনই ইউজার স্ক্রিনে টাচ করবে, তখনি touch.mp3 নামক মিউজিকটি প্লে করবে।

 

প্রজেক্টের সোর্স কোড গুলো ডাউনলোড করা যাবে গিটহাব থেকে। প্রত্যেকটা প্রজেক্ট আলাদা আলাদা ফোল্ডারে রয়েছে। ঐখান থেকে ডাউনলোড করে নিয়ে কাজ করা যাবে। গিটহাব লিঙ্ক

Leave a Reply