CodeGym/Java Course/All lectures for BN purposes/গেম ইঞ্জিন

গেম ইঞ্জিন

বিদ্যমান

1. একটি গেম ইঞ্জিনে আপনার প্রথম গেম লেখা

যেকোন কম্পিউটার গেম বাস্তবায়ন করার সময় তিনটি ধাপ থাকে:

  1. খেলা শুরু করা হচ্ছে। এর মধ্যে বিভিন্ন প্রস্তুতিমূলক ক্রিয়া রয়েছে: খেলার ক্ষেত্রের আকার নির্ধারণ করা এবং এটি অঙ্কন করা, গেমের অবজেক্টগুলি তাদের প্রাথমিক অবস্থানে তৈরি করা এবং সেট আপ করা, সেইসাথে গেমের শুরুতে সম্পাদন করা প্রয়োজন এমন অন্য যে কোনও ক্রিয়া।
  2. খেলাটি খেলিতেছি. এর মধ্যে থাকতে পারে চলমান গেম অবজেক্ট, প্লেয়ার অ্যাকশন, অর্জিত পয়েন্ট ট্যালিং, সেইসাথে নিয়মিত বিরতিতে বা বোতাম ক্লিক এবং কী প্রেসের প্রতিক্রিয়া হিসাবে অন্য যে কোনও ক্রিয়া সম্পাদন করা আবশ্যক।
  3. খেলা শেষ। এর মধ্যে অ্যানিমেশন বন্ধ করা, একটি জয়/পরাজয় বার্তা এবং গেমের শেষে সঞ্চালিত করা প্রয়োজন এমন অন্য কোনো ক্রিয়া অন্তর্ভুক্ত থাকতে পারে।

আমরা এখন ক্রমানুসারে তিনটি ধাপের মধ্য দিয়ে হেঁটে যাব এবং দেখব কিভাবে CodeGym গেম ইঞ্জিন এই প্রক্রিয়াটিকে সহজ করতে সাহায্য করতে পারে।


2. খেলা শুরু করা হচ্ছে

আপনি যখন CodeGym গেম ইঞ্জিন ব্যবহার করেন, গেমের শুরুতে শুধুমাত্র দুটি ধাপ থাকে:

ধাপ 1: গেমের প্রধান ক্লাস তৈরি করুন

CodeGym গেম ইঞ্জিনের উপর ভিত্তি করে আপনার নিজস্ব গেম তৈরি করতে, আপনাকে একটি ক্লাস তৈরি করতে হবে এবং এটিকে গেম ক্লাস (com.codegym.engine.cell.Game) প্রসারিত করতে হবে। এটি আপনার ক্লাসকে গেম ইঞ্জিনে পদ্ধতিগুলি কল করার ক্ষমতা দেবে এবং ইঞ্জিনটি আপনার ক্লাসের পদ্ধতিগুলিকে কল করতে সক্ষম হবে ৷ উদাহরণ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

ধাপ 2: initialize()পদ্ধতিটি ওভাররাইড করুন

পদ্ধতিতে initialize(), আপনি গেমটি শুরু করার জন্য প্রয়োজনীয় সমস্ত ক্রিয়া সম্পাদন করেন: খেলার ক্ষেত্র তৈরি করুন, সমস্ত গেম অবজেক্ট তৈরি করুন, ইত্যাদি। আপনাকে কেবলমাত্র গেম ক্লাসের উত্তরাধিকারী শ্রেণীতে এই পদ্ধতিটি ঘোষণা করতে হবে। উদাহরণ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  @Override
  public void initialize() {
     // Here we perform all the actions to initialize the game and its objects
  }
}

পদ্ধতিটি পদ্ধতির initialize()সাথে সাদৃশ্যপূর্ণ main()। এটি হল এন্ট্রি পয়েন্ট যেখান থেকে আপনার সমস্ত গেম কোড কার্যকর করা শুরু হয়।



3. খেলার মাঠ তৈরি করা

খেলার ক্ষেত্র তৈরি করাও একটি দ্বি-পদক্ষেপ প্রক্রিয়া:

ধাপ 1: খেলার মাঠকে কক্ষে ভাগ করুন

গেম ইঞ্জিন পুরো খেলার ক্ষেত্রটিকে কোষে ভাগ করে। সর্বনিম্ন আকার 3×3, এবং সর্বোচ্চ 100×100।

একবার তৈরি হলে খেলার মাঠের আকার ধ্রুবক থাকে। অনুভূমিক এবং উল্লম্ব মাত্রা একই হতে হবে না. উদাহরণস্বরূপ, 7 এর প্রস্থ এবং 9 এর উচ্চতা:

অনুগ্রহ করে মনে রাখবেন যে ঘরের নম্বর দেওয়া উপরের বাম কোণ থেকে শুরু হয়।

খেলার ক্ষেত্রের আকার সেট করতে, void setScreenSize(int width, int height)পদ্ধতিটি ব্যবহার করুন। এটি খেলার মাঠের আকার নির্ধারণ করে। widthএর পরামিতি হল অনুভূমিক ( ) এবং উল্লম্ব ( height) মাত্রার কক্ষের সংখ্যা । খেলা শুরু হলে এটি সাধারণত একবার বলা হয়। উদাহরণ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
   @Override    public void initialize()
   {
      // Set the field size to 7x9 cells
      setScreenSize(7, 9);
      ...
   }
}

একটি গেম লেখার সময়, আপনাকে খেলার মাঠের বর্তমান প্রস্থ এবং উচ্চতা পেতে হতে পারে। সংশ্লিষ্ট পদ্ধতি হল int getScreenWidth()এবং int getScreenHeight().

ধাপ 2: গ্রিড চালু/বন্ধ করুন (ঐচ্ছিক)

আপনি যদি আপনার খেলার মাঠের কোষগুলিকে আলাদা করার জন্য একটি কালো গ্রিড পছন্দ না করেন তবে আপনি এটি বন্ধ করতে পারেন।

পদ্ধতিটি void showGrid(boolean isShow)কোষগুলিকে আলাদা করে এমন গ্রিডকে সক্রিয়/অক্ষম করে। গ্রিড ডিফল্টরূপে প্রদর্শিত হয়. এটি বন্ধ করতে, এই পদ্ধতিটি কল করুন এবং falseযুক্তি হিসাবে পাস করুন:

showGrid(false);

ফলাফল:

গ্রিডটি আবার চালু করতে, এই পদ্ধতিটি কল করুন:

showGrid(true);

ফলাফল:



4. আদিম প্রোগ্রাম

আসুন একটি খুব আদিম গেম লিখি যা কোডজিম গেম ইঞ্জিন ব্যবহার করে। এটি 3টি জিনিস করবে:

  1. এটি খেলার ক্ষেত্রটিকে 9টি কোষে ভাগ করবে: 3×3
  2. এটি গ্রিড অক্ষম করবে (কোষের মধ্যে লাইন)
  3. কেন্দ্রীয় কক্ষটি নীল রঙে আঁকা হবে এবং Xতাতে অক্ষর লেখা থাকবে।

চূড়ান্ত কোড এই মত দেখায়:

public class MySuperGame extends Game
{
   @Override
   public void initialize()
   {
      // Create a 3x3 playing field
      setScreenSize(3, 3);
      // Disable displaying the grid
      showGrid(false);
      // Change the background of the central cell to blue and display "X" in it
      setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
   }
}

এই উদাহরণে, খেলার ক্ষেত্রটি 3x3 সেট করা হয়েছে, গ্রিডটি বন্ধ করা হয়েছে, এবং একটি কমলা অক্ষর সেল উচ্চতার অর্ধেক একটি নীল পটভূমি Xসহ কেন্দ্রের ঘরে রাখা হয়েছে ৷ খেলা শুরু হলে প্লেয়ার এটিই প্রথম দেখবে।


মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই