কম্পিউটার

ইউনিটি দিয়ে কিভাবে বেসিক অ্যান্ড্রয়েড গেম তৈরি করবেন

"কীভাবে একটি মৌলিক ইউনিটি প্ল্যাটফর্ম গেম তৈরি করবেন" (এবং এর অংশ 2) শিরোনামের একটি পূর্ববর্তী অ্যাপুলের টিউটোরিয়ালে , আমরা Unity এবং বিল্ট-ইন WebGL প্লাগ-ইন ব্যবহার করে একটি সাধারণ HTML5-ভিত্তিক ব্রাউজার গেম তৈরি করেছি এই অনুরূপ টিউটোরিয়ালে, আমরা কীভাবে একটি মৌলিক Android তৈরি করতে হয় তা নিয়ে আলোচনা করব। ইউনিটি ব্যবহার করে খেলা।

প্রয়োজনীয়তা:

  • একতা
  • নোটপ্যাড++ (ঐচ্ছিক কিন্তু প্রস্তাবিত) মত একটি ভাল পাঠ্য সম্পাদক
  • Android SDK
যদি আপনার কাছে এটি ইতিমধ্যে না থাকে, তাহলে আপনার Unity SDK এবং Android SDK ডাউনলোড এবং ইনস্টল করে শুরু করা উচিত। আমাদের Android SDK দরকার যাতে আমরা একটি Android পরিবেশে গেমের APK পরীক্ষা করতে পারি।

ইউনিটি চালু করুন এবং একটি নতুন প্রকল্প তৈরি করুন। এটিকে একটি 2D প্রকল্প করুন৷

পরিচিত হওয়ার জন্য বেশ কিছু প্যানেল আছে - হায়ারার্কি প্যানেল যাতে আমাদের দৃশ্যের সমস্ত উপাদান থাকবে (দৃশ্য =যাই হোক না কেন আপনি বর্তমানে কাজ করছেন)। তারপরে গেম ট্যাবটি রয়েছে যা সম্পাদকের ভিতরে থাকাকালীন আপনার গেম খেলা/পরীক্ষা করার জন্য ব্যবহৃত হয় এবং ডানদিকে আপনার ইন্সপেক্টর প্যানেল রয়েছে যেখানে আপনি আলো, পদার্থবিদ্যা ইত্যাদির মতো বিভিন্ন জিনিস সম্পাদনা করবেন৷

প্রথম জিনিসটি আমরা একটি স্প্রাইট তৈরি করতে চাই - এটি হবে আমাদের প্রধান চরিত্র (যা আমরা নিয়ন্ত্রণ করি)। আপনি হয় আপনার নিজের স্প্রাইট আঁকতে পারেন, যেমন চোখ দিয়ে একটি বর্গক্ষেত্র আঁকতে পারেন, অথবা আপনি ইন্টারনেট থেকে একটি স্প্রাইট নিতে পারেন – শুধু নিশ্চিত করুন যে এটি একটি .PNG ফাইল (স্বচ্ছ ব্যাকগ্রাউন্ড)।

আপনার স্প্রাইটটিকে মূল দৃশ্য উইন্ডোতে টেনে আনুন (সবচেয়ে বড় উইন্ডো) – এটি বাম দিকে হায়ারার্কি প্যানেলেও প্রদর্শিত হবে।

তাই এখন আমরা কয়েকটি প্ল্যাটফর্ম তৈরি করব - এগুলি সাধারণ স্কোয়ার হতে পারে, কারণ আমরা দেয়াল এবং অন্যান্য প্ল্যাটফর্ম তৈরি করতে সহজেই তাদের আকার পরিবর্তন করতে সক্ষম হব।

তাই শুধু একটি নতুন বর্গক্ষেত্র "স্প্রাইট" তৈরি করুন এবং টেনে আনুন এবং দৃশ্য উইন্ডোতে ফেলে দিন যেমন আপনি আপনার স্প্রাইট চরিত্রের সাথে করেছিলেন৷

এখন আমাদের মূল চরিত্রে পদার্থবিদ্যা দেওয়ার জন্য ইউনিটিকে নির্দেশ দিতে হবে - আপনার প্রধান স্প্রাইট চরিত্রে ক্লিক করুন (এটি দৃশ্য উইন্ডোতে নীল রঙে হাইলাইট হওয়া উচিত), তারপর ইন্সপেক্টর প্যানেলে, "গেমঅবজেক্টস" সন্ধান করুন৷

"অ্যাড কম্পোনেন্ট> পদার্থবিদ্যা 2D> RigidBody2D" এ ক্লিক করুন। এটি স্বয়ংক্রিয়ভাবে আপনার স্প্রাইটে পদার্থবিদ্যা যোগ করবে, যা অন্যথায় আপনাকে অন্য SDK-তে স্ক্রিপ্ট করতে হতো।

ইউনিটি দিয়ে কিভাবে বেসিক অ্যান্ড্রয়েড গেম তৈরি করবেন

আমরা প্রধান স্প্রাইট চরিত্রটিকে নিয়ন্ত্রণের বাইরে ঘুরতে বাধা দিতে চাই - তাই ইন্সপেক্টর প্যানেলে সীমাবদ্ধতা ট্যাবটি খুঁজুন (প্রধান স্প্রাইটটি এখনও দৃশ্য উইন্ডোতে হাইলাইট করা আছে) এবং "ফ্রিজ রোটেশন Z"-এর জন্য বাক্সটি চেক করুন৷

আপনি যদি "প্লে" বোতামে আঘাত করেন, আপনার প্রধান স্প্রাইট চরিত্রটি আকাশ থেকে পড়ে যাওয়া উচিত এবং অবিরামভাবে পড়ে যাওয়া উচিত - আমরা পরে এটির যত্ন নেব, তবে আমরা কীভাবে সহজেই পদার্থবিদ্যা প্রয়োগ করতে পেরেছি তা নোট করুন। আমরা যে পদার্থবিদ্যা প্রয়োগ করেছি তা নির্ভর করে সেগুলি যে আকারে প্রয়োগ করা হচ্ছে তার উপর - তাই আপনি যদি একই পদার্থবিদ্যা একটি গোলক প্রয়োগ করেন, উদাহরণস্বরূপ, এটি ঘুরবে৷

চারপাশে অক্ষর ঘোরানো এবং ফ্রিহুইলিং প্রতিরোধ করার জন্য আমরা আমাদের অভিযোজন ঠিক করতে চাই। নির্বাচিত প্লেয়ারের সাথে ইন্সপেক্টরে 'সীমাবদ্ধতা' খুঁজুন এবং ঘূর্ণন Z হিমায়িত করার জন্য বক্সে টিক দিন। এখন আবার প্লে-এ ক্লিক করুন এবং আপনার প্লেয়ার এখন আকাশ থেকে তার অসীম ধ্বংসের দিকে নেমেছে।

আমাদের প্রধান স্প্রাইট চরিত্রটিকে অবিরামভাবে পড়া বন্ধ করার জন্য, আমাদের একটি কোলাইডার যুক্ত করতে হবে। এটি মূলত একটি আকৃতির কঠিন রূপরেখা যা আমরা মূল স্প্রাইট চরিত্রে যুক্ত করব। আপনার প্রধান স্প্রাইট চরিত্রটি হাইলাইট করুন, "অ্যাড কম্পোনেন্ট> পদার্থবিদ্যা 2D> BoxCollider2D এ ক্লিক করুন৷

এখন আপনার আগে তৈরি করা প্ল্যাটফর্মের সাথে একই সঠিক জিনিসটি করুন। আপনার প্রধান স্প্রাইট চরিত্রটি এখন প্ল্যাটফর্মের সাথে "সংঘর্ষ" এবং সেখানে থাকা উচিত।

তাই এখন আমরা নিশ্চিত করতে চাই যে ক্যামেরা আপনার প্রধান স্প্রাইট চরিত্রকে অনুসরণ করবে - দৃশ্যের ভিতরে, ইতিমধ্যেই একটি ক্যামেরা অবজেক্ট থাকা উচিত। আপনি এটিকে উপরে টেনে আনতে চান৷ প্রধান স্প্রাইট চরিত্র।

এটি বিশেষভাবে গুরুত্বপূর্ণ যদি আপনি একটি 3D ভিত্তিক রানার তৈরি করেন , স্লোপের মত কিছু যেখানে প্রাথমিক গেম অবজেক্টের (আপনার প্রধান স্প্রাইট চরিত্র) পিছনে ক্রমাগত থাকার জন্য আপনার ক্যামেরা প্রয়োজন।

ইউনিটি দিয়ে কিভাবে বেসিক অ্যান্ড্রয়েড গেম তৈরি করবেন

এখন হায়ারার্কি প্যানেলে যান এবং গেমঅবজেক্টের তালিকায়, আপনি ক্যামেরাটিকে নীচে টেনে আনতে চান প্রধান স্প্রাইট চরিত্র (প্লেয়ার গেমঅবজেক্ট)। এটি প্রধান স্প্রাইট চরিত্রটিকে ‘অভিভাবক’ করে তুলবে ক্যামেরার। তাই যখনই প্লেয়ার গেমঅবজেক্ট স্ক্রিনের চারপাশে ঘোরে, ক্যামেরা অনুসরণ করা উচিত।

তাই এই গেম টিউটোরিয়ালের জন্য, আমরা শুধু একটি মৌলিক অন্তহীন রানার টাইপ গেম তৈরি করতে যাচ্ছি, রান 3 এর মত কিছু, যেখানে আপনার প্রধান চরিত্রটি স্ক্রীন জুড়ে ছুটবে এবং বাধাগুলি এড়িয়ে যাবে (বা "গেম ওভার" যদি আপনি কোনও বাধা আঘাত করেন"। এটি কয়েকটি স্ক্রিপ্ট নিতে যাচ্ছে, যার বেশিরভাগ এই নির্দেশিকায় দেওয়া হবে৷

"সম্পদ" ফোল্ডারে ডান ক্লিক করুন এবং একটি নতুন ফোল্ডার তৈরি করুন - এটির নাম দিন স্ক্রিপ্ট . এখন এই নতুন ফোল্ডারে ডান ক্লিক করুন এবং "তৈরি> C# স্ক্রিপ্ট" টিপুন এবং এটির নাম দিন PlayerControls . এই স্ক্রিপ্টটি আমাদের প্রধান স্প্রাইট চরিত্রের আচরণকে সংজ্ঞায়িত করতে চলেছে৷

আপনি যখন এই নতুন স্ক্রিপ্টে দুবার ক্লিক করেন, তখন এটি উচিত ভিজ্যুয়াল স্টুডিও-তে খুলুন - বিকল্পভাবে (এবং আমার ব্যক্তিগত পছন্দ), আপনি এটিকে NotePad++ এর মত কিছুতে সম্পাদনা করতে পারেন।

স্ক্রিপ্ট ফাইলটিতে ইতিমধ্যেই কিছুটা "বয়লার প্লেট" কোড থাকা উচিত - মূলত এটি এমন একটি স্ক্রিপ্ট যা একা থাকতে হবে বা শুধু আপনার প্রয়োজনের সাথে সামঞ্জস্য করতে হবে এবং আমাদের অনেক সময় বাঁচাবে৷ তাই আমরা একটি নতুন বস্তু যোগ করতে যাচ্ছি।

লাইনের উপরে ফাঁকা শুরু করুন():

ইউনিটি দিয়ে কিভাবে বেসিক অ্যান্ড্রয়েড গেম তৈরি করবেন

সর্বজনীন Rigidbody2D rb;

পরবর্তী বিট কোডটি আমাদের যোগ করতে হবে Start() এর মধ্যে, এবং এটি rigidbody খুঁজে বের করতে ব্যবহার করা হয় - মূলত, আমরা Unity কে নির্দেশ দিচ্ছি আমরা গেমঅবজেক্টস (আমাদের প্রধান স্প্রাইট চরিত্র) এবং স্টার্টের সাথে সংযুক্ত পদার্থবিদ্যা সনাক্ত করতে। () একটি নতুন অবজেক্ট বা স্ক্রিপ্ট তৈরি করা হলে এক্সিকিউট করা হবে।

তাহলে পরবর্তীতে, পদার্থবিদ্যার বস্তুটি সনাক্ত করুন।

rb = GetComponent<Rigidbody2D>();

এবং আপনি Update()

এর ভিতরে এই লাইনটি যোগ করবেন
rb.velocity = new Vector2(3, rb.velocity.y);

Update() যা করে তা ক্রমাগত রিফ্রেশ হয়, তাই সেখানে যোগ করা যেকোনো কোড ক্রমাগত চলবে (যদি না অবজেক্টটি ধ্বংস হয়)। তাই আমরা যা করেছি তা হল স্ক্রিপ্টকে নির্দেশ দেওয়া হল যে আমরা চাই ওয়াই অক্ষে (rb.velocity.y) একই গতি ব্যবহার করে একটি নতুন ভেক্টর থাকুক, কিন্তু অনুভূমিক অক্ষে 3 এর গতি। ভবিষ্যতে, আপনি ‘FixedUpdate()’ও ব্যবহার করতে পারেন যা একই রকম কিন্তু ভিন্ন, কারণ সেখানে আপনি স্ক্রিপ্টের আপডেট/রিফ্রেশ পরিমাণ নিয়ন্ত্রণ করতে পারেন।

স্ক্রিপ্টটি সংরক্ষণ করুন এবং ইউনিটিতে ফিরে যান, তারপর এটি হাইলাইট করতে আপনার প্রধান স্প্রাইট চরিত্রটিতে ক্লিক করুন। ইন্সপেক্টর প্যানেলে, Add Component> Scripts-এ যান এবং আমরা এইমাত্র সংরক্ষিত স্ক্রিপ্ট যোগ করুন। এখন আপনি প্লে বোতামে ক্লিক করলে, প্রধান স্প্রাইট অক্ষরটি ক্রমাগত প্ল্যাটফর্ম প্রান্তের দিকে যেতে হবে।

প্লেয়ার ইনপুট কন্ট্রোল তৈরি করা হচ্ছে

তাই যেহেতু এটি বাধা সহ একটি অন্তহীন রানার স্টাইলের গেম, তাই আমাদের প্লেয়ারের জন্য 'জাম্প' বোতামের মতো নিয়ন্ত্রণ যোগ করতে হবে।

আগে থেকে স্ক্রিপ্টটি পুনরায় খুলুন, এবং আমরা এই অতিরিক্ত কোড যোগ করতে যাচ্ছি:

if (Input.GetMouseButtonDown(0))  {

         rb.velocity = new Vector2(rb.velocity.x, 5);

         }

আপনি এটিকে Update() পদ্ধতির ভিতরে রাখতে যাচ্ছেন, এবং এটি মূলত যা করে তা হল Unity কে বলে যে প্লেয়ার যখন তাদের মাউস বোতামে ক্লিক করে (যা অ্যান্ড্রয়েডে স্ক্রিন ট্যাপ হিসাবে অনুবাদ করা হবে), তখন প্রধান স্প্রাইট চরিত্রটি "জাম্প করবে" " বাতাসে. এর কারণ হল আমরা 5 এর মান সহ Y অক্ষে একটি বেগ যুক্ত করেছি (একটি উচ্চতর মান অবশ্যই উচ্চ লাফের অর্থ হবে)।

আপনি যদি কোডিংয়ের সাথে খুব বেশি পরিচিত না হন তবে আমরা একটি যদি ব্যবহার করি বিবৃতি কারণ যদি মূলত একটি "করুন বা করবেন না" ধরনের নির্দেশ - এটির আক্ষরিক অর্থে বলা হয় যদি এটি ঘটে তবে এই আদেশটি করুন . তাই যদি প্লেয়ার মাউসে ক্লিক না করে (অথবা তাদের অ্যান্ড্রয়েড স্ক্রীনে ট্যাপ করে) তাহলে স্পষ্টতই স্ক্রিপ্টটি চলবে না।

এগিয়ে যান এবং "প্লে" বোতামে ক্লিক করুন এবং চালিয়ে যাওয়ার আগে নিশ্চিত করুন যে এটি সঠিকভাবে কাজ করছে৷

এর পরে, আমরা আমাদের বাধাগুলি (যা প্রধান চরিত্র স্প্রাইটকে "ধ্বংস" করতে পারে), একটি গেম স্কোর এবং একটি "গেম ওভার" মেনু যোগ করতে যাচ্ছি।

আপনি যদি এখনও পর্যন্ত গেমটি পরীক্ষা করে থাকেন তবে আমাদের এখন পর্যন্ত একমাত্র সমস্যাটি হল যে আমাদের তৈরি করা "জাম্প" বোতাম টিপলে অক্ষরটি গ্রাউন্ডেড হোক বা না হোক তা লাফিয়ে দেবে - এটি মূলত ফ্ল্যাপি বার্ডস, এবং রানার নয় আমরা চাই. কিন্তু আমরা এটা ঠিক করতে যাচ্ছি।

স্ক্রিপ্টে, এই বিট কোডটি উপরে যোগ করুন Update() পদ্ধতি:

public Transform groundCheck;

public Transform startPosition;

public float groundCheckRadius;

public LayerMask whatIsGround;

private bool onGround;

And then add this next line to the Update method above the if statement:

onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);

And next you will change this following line to include “&& onGround”

if (Input.GetMouseButtonDown(0) && onGround) {

So our entire script should basically look like this:

public class PlayerControls : MonoBehaviour

 {

     public Rigidbody2D rb;

     public Transform groundCheck;

     public Transform startPosition;

     public float groundCheckRadius;

     public LayerMask whatIsGround;

     private bool onGround;




void Start() {

     rb = GetComponent<Rigidbody2D>();

     }




    void Update() {

         rb.velocity = new Vector2(3, rb.velocity.y);

         onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);       

         if (Input.GetMouseButtonDown(0) && onGround) {

                 rb.velocity = new Vector2(rb.velocity.x, 5);

                 }




    }




}

আমরা যা করেছি তা ব্যাখ্যা করার জন্য, আমরা একটি নতুন "রূপান্তর" তৈরি করেছি, যার অর্থ গেমের জগতের একটি অবস্থান। আমরা এর ব্যাসার্ধ সেট করেছি এবং আমরা ইউনিটিকে নির্দেশ দিচ্ছি যে ব্যাসার্ধটি আমাদের "গ্রাউন্ড" স্তরের সাথে ওভারল্যাপ করছে কিনা - এবং তাই যদি আমাদের ব্যাসার্ধটি "গ্রাউন্ড" এর সাথে সিঙ্ক করা হয় তবে আমাদের চরিত্রটি লাফ দিতে সক্ষম হবে এবং যদি আমরা 'একটি লাফ থেকে ইতিমধ্যে বাতাসে আছে, আমরা আবার লাফ দিতে সক্ষম হবে না. মূলত, অনগ্রাউন্ড সত্য হবে যদি গ্রাউন্ডচেক নামের রূপান্তর স্থল স্তর সঙ্গে ওভারল্যাপ করা হয়. আশা করি এটি অর্থপূর্ণ।

তাই স্ক্রিপ্টটি সংরক্ষণ করুন এবং ইউনিটিতে ফিরে যান এবং আপনি লক্ষ্য করবেন যে প্লেয়ারটিকে হাইলাইট করার পরে ইন্সপেক্টরে আরও বিকল্প যোগ করা হয়েছে। এগুলি সর্বজনীন ভেরিয়েবল এবং আমরা এগুলিকে আমাদের পছন্দ অনুসারে সামঞ্জস্য করতে পারি৷

এখন হায়ারার্কিতে ডান-ক্লিক করুন এবং একটি নতুন খালি অবজেক্ট তৈরি করুন এবং এটিকে টেনে আনুন যাতে এটি মূল দৃশ্য উইন্ডোতে প্রধান চরিত্র স্প্রাইটের নীচে থাকে - এই খালি বস্তুটি যেখানে আমরা মেঝে সনাক্ত করতে চাই সেখানে অবস্থান করুন। বস্তুটির নাম পরিবর্তন করে "চেক গ্রাউন্ড" করুন, এবং তারপরে এটিকে প্লেয়ারের গেম অবজেক্টের নীচে টেনে আনুন যেমনটি আমরা ক্যামেরার সাথে আগে করেছিলাম (বস্তুর মধ্যে একটি পিতামাতা-শিশু সম্পর্ক তৈরি করতে)। এখন খালি বস্তুটি ক্যামেরার মতোই মূল চরিত্র স্প্রাইটকে অনুসরণ করবে এবং এটি ক্রমাগত ফ্লোরের দূরত্ব পরীক্ষা করবে।cam

এখন প্রধান অক্ষর স্প্রাইট নির্বাচন করুন এবং ইন্সপেক্টর প্যানেলে যান - চেক গ্রাউন্ড অবজেক্টটিকে "গ্রাউন্ডচেক" নামক স্থানে টেনে আনুন। 'রূপান্তর' অবস্থানটি এই নতুন বস্তুর অবস্থানের সমান হওয়া উচিত এবং যেখানে এটি "ব্যাসার্ধ" বলে, এটিকে 0.1 করুন৷

আমরা স্থল স্তর সংজ্ঞায়িত করতে হবে. শুধু স্থল ভূখণ্ড নির্বাচন করুন এবং ইন্সপেক্টরে, "স্তর:ডিফল্ট" (এটি একটি ড্রপডাউন বক্স) এর জন্য বোতামটি খুঁজুন এবং "স্তর যোগ করুন" নির্বাচন করুন৷

এখন আমাদের প্ল্যাটফর্মের জন্য স্তর হিসাবে "গ্রাউন্ড" নির্বাচন করুন এবং গেম উইন্ডোতে অন্য যেকোনো প্ল্যাটফর্মের জন্য এটি পুনরাবৃত্তি করুন। যেখানে এটি আমাদের প্রধান চরিত্র স্প্রাইট অবজেক্টে "হোয়াট ইজ গ্রাউন্ড" বলে, সেখানে গ্রাউন্ড লেয়ারও সিলেক্ট করুন।

আমরা যা করেছি তা হল প্লেয়ার স্ক্রিপ্টকে একটি চেক করার নির্দেশ - যদি স্ক্রিনের ছোট বিন্দুটি স্তরের সাথে মেলে এমন কিছুর সাথে ওভারল্যাপ করছে, অক্ষরটি কেবল তখনই লাফিয়ে উঠবে যদি এটি সত্য হয়।

কলিসন এবং গেম মেনুতে গেম ওভার

তাই সবকিছু গুটিয়ে নিতে, আমরা যে চূড়ান্ত জিনিসগুলি করতে চাই তা হল A:বাধার সাথে সংঘর্ষের ফলে একটি খেলা শেষ হয়ে যায় এবং B:আবার প্লে বোতাম দিয়ে একটি "গেম ওভার" মেনু স্ক্রীন তৈরি করুন৷

আপনি মূলত যা করতে চান তা হল:

  1. একটি খেলোয়াড় যোগ করুন বস্তু এবং একটি রিজিডবডি বরাদ্দ করুন এবং একটি কোলাইডার এটা আপনার পছন্দের।
  2. একটি শত্রু যোগ করুন বস্তু এবং একটি রিজিডবডি বরাদ্দ করুন এবং একটি কোলাইডার এটা আপনার পছন্দের. (এবং ঐচ্ছিক, "শত্রু" ট্যাগ যোগ করুন এটিতে)
  3. একটি নতুন C# স্ক্রিপ্ট  তৈরি করুন৷ এবং এটিকে প্লেয়ার -এ একটি উপাদান হিসেবে যোগ করুন (অথবা প্লেয়ারের সাথে সংযুক্ত যেকোন স্ক্রিপ্ট ব্যবহার করুন, যদি আপনার কাছে আগে থেকে থাকে তবে একটি নতুন তৈরি করার দরকার নেই)
  4. আপনার স্ক্রিপ্টে এটি যোগ করুন:
void OnCollisionEnter(Collision coll){

           Debug.Log("Collision"); //Check to see if it even registers a collision, if it works you can remove this line

           if(coll.gameobject.tag == "Enemy"){ //sees if the object your player collided with has a tag called "Enemy", this can be replaced with if(coll.gameobject.name == ... but using a tag is an easy way to do it.

                    //Add your code here, like:

                    Application.LoadLevel("GameOver");

                    Debug.Log("Working");  //if working, you can remove this line.

           }

সেই উদাহরণ স্ক্রিপ্টের সাথে খেলুন - কিছু পরীক্ষা এবং ত্রুটি সহ, আপনি আমাদের যা প্রয়োজন ঠিক তা করতে পাবেন।

এখন একটি প্লে বোতামের সাহায্যে একটি গেমওভার "লেভেল" কীভাবে তৈরি করা যায় তা দেখতে, অ্যাপুলের গাইড "কিভাবে একটি বেসিক ইউনিটি প্ল্যাটফর্ম গেম Pt তৈরি করবেন" এর শেষ বিভাগটি দেখুন। 2”।


  1. কিভাবে একটি অ্যান্ড্রয়েড ফোন দিয়ে QR কোড স্ক্যান করবেন

  2. কিভাবে অ্যান্ড্রয়েডে টেলিগ্রাম অ্যাকাউন্ট তৈরি করবেন

  3. অ্যান্ড্রয়েডে যে কোনও গেম কীভাবে হ্যাক করবেন

  4. Learn Math অ্যাপের মাধ্যমে কিভাবে মৌলিক গণিত পাটিগণিত শিখবেন:নম্বরের খেলা