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

আমরা যখন গেম তৈরি করব, তখন আমাদের গেমে অনেক গুলো স্ক্রিন থাকবে। যেমন সেটিং স্ক্রিন, গেম স্ক্রিন, মেনু স্ক্রিন ইত্যাদি। এ স্ক্রিন গুলো ম্যানেজ করার জন্য আমাদের জন্য রয়েছে libGDX এর Game ক্লাস।  এর আগে আমরা ApplicationListener নিয়ে কাজ করেছি। এখন থেকে আমরা Game ক্লাস নিয়ে কাজ করব।

 

স্ক্রিন পরিবর্তন করা খুবি সহজ। আমরা একটা প্রজেক্ট তৈরি করব। তারপর যখন গেমটি লোড হবে, আমরা বলে দিব কোন স্ক্রিনটি দেখাতে। তার জন্য আমরা একটা নতুন স্ক্রিন তৈরি করে নিব। এ জন্য প্যাকেজ ম্যানেজারের উপর রাইট ক্লিক করে আমরা নতুন একটি ক্লাস তৈরি করে নিব। ধরি ScreenPlay, যেখানে গেম খেলা যাবে। আর সেখানে আমাদের গেম কোড লিখব। আপাতত আমরা একটা স্কোয়ার দেখাচ্ছি। তার কোডঃ

 

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.ScreenAdapter;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

/**
 * Created by Jack on 1/23/2016.
 */

public class ScreenPlay extends ScreenAdapter {
    // Declare shapeRenderer
    private ShapeRenderer shapeRenderer;

    @Override
    public void show() {
        // Initialize shapeRenderer
        shapeRenderer = new ShapeRenderer();

    }


    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
        shapeRenderer.rect(100, 100, 400, 400);
        shapeRenderer.end();
    }
}

 

আমাদের মেইন ক্লাস থেকে স্ক্রিন সেট করে দিবঃ

import com.badlogic.gdx.Game;

public class AwesomeGame extends Game {

	@Override
	public void create() {
		setScreen(new ScreenSqure());
	}

}

আমাদের মেইন ক্লাস Extend করবে Game ক্লাসকে। আর স্ক্রিন Extend করবে ScreenAdapter কে।
এখন আপনি নতুন একটা ক্লাস তৈরি করে নিন। এরপর সেখানে ScreenAdapter ক্লাসকে Extend করে কোড লিখুন। এবং শেষে মেইন গেম ক্লাস থেকে স্ক্রিন সেট করুন।

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


Leave a Reply

Your email address will not be published. Required fields are marked *