এটির সাথে আসল কৌশলটি উচ্চ বিদ্যালয় স্তরের বিজ্ঞান; আপনি উচিত কাজ করেছেন। আপনি যদি দ্রুত গুগল অনুসন্ধান করেন নি এমন ইভেন্ট আপনাকে শুরু করবে । আপনি কীভাবে 'আভিজাত্য' মানসিকতা এড়ানোর তা বোঝাতে চান্দ্র ল্যান্ডারের উদাহরণটি গ্রহণ করুন।
একবার আপনি পড়লেন যে [change in position] = [velocity] * [time passed]
এটি স্পষ্ট হয়ে যায় যে এই ভেরিয়েবলগুলি ট্র্যাক করে রাখা দরকার:
float x, y; // Your X and Y co-ordinates.
float vx, vy; // Your X and Y velocity.
float deltaTime; // Change in time.
এর পরে আপনি প্রতিটি ফ্রেমে পজিশনে কেবল বেগটি প্রয়োগ করবেন:
// Change X by the velocity multiplied by the time.
x = x + vx * deltaTime;
y = y + vy * deltaTime;
এখন আমরা প্রতিটি ফ্রেমের বেগটি পরিবর্তন করতে চাই যাতে আমরা মাধ্যাকর্ষণ যুক্ত করতে পারি। ঠিক একই উত্স অনুসারে [change in velocity] = [acceleration] * [time passed]
। সুতরাং আমরা সঠিক একই নীতি প্রয়োগ করতে পারি:
const float gravity = 9.8f; // The gravity of the earth.
// Add gravity to the vertical velocity.
vy = vy + gravity * deltaTime;
// Change X by the velocity multiplied by the time.
x = x + vx * deltaTime;
y = y + vy * deltaTime;
খেলোয়াড়ের তার মহাকাশযান নিয়ন্ত্রণ করার জন্য এখন আপনার একটি উপায় দরকার। বেসিক পদার্থবিজ্ঞান সম্পর্কে আরও পড়ার মাধ্যমে আপনি শিখবেন যে গতিটি বলের ফল - আমি কোনও উত্স খুঁজে পাই না তবে [change in acceleration] = ([force] / [mass]) * time
(যতদূর মনে পড়ে)। সুতরাং যখন প্লেয়ার কোনও কী চাপলে আপনি কেবল কোনও কিছুর সাথে ভেরিয়েবলগুলি সেট করে রাখবেন fx
এবং fy
আপনার আপডেটের সময় সমীকরণটি প্রয়োগ করবেন।
শেষ পর্যন্ত আপনার গেমের অবজেক্টগুলির চারপাশে পদার্থবিজ্ঞান সম্পর্কে আপনার চিন্তা করা উচিত - এবং তাদের যেভাবে আপনি ভাবেন সেভাবে চালিত করার চেষ্টা করার পরিবর্তে সমীকরণটি সন্ধান করুন ।
ভবিষ্যত দ্রষ্টব্য: মনে রাখবেন যে এটি অবশ্যই পদার্থবিজ্ঞানের সর্বোত্তম উপায় নয় (এটাকে অয়লার একীকরণ বলা হয় এবং এটি স্বল্প ফ্রেমের হারে কিছু বিশ্রী দৃশ্যের দিকে নিয়ে যেতে পারে) - আপনাকে জিনিসগুলি করার অন্যান্য উপায়গুলি খতিয়ে দেখতে হবে (সেই নিবন্ধটি বেশ কিছু খালি বেসিক উপর ভাল লেখার আপ)। তবে আপাতত ইউলর ইন্টিগ্রেশনের সাথে লেগে থাকুন, কারণ এর অর্থ আপনি একটি জিনিস কম শিখতে চাইছেন।
কোন গেমগুলি আপনাকে সঠিক মানসিকতায় কীভাবে চিন্তা করতে শেখায়?
আপনি কীভাবে পরীক্ষা করবেন যে আপনি কাজগুলি সঠিকভাবে এবং সঠিক মানসিকতার সাথে করেছেন? Sleep(10 milliseconds)
আপনার গেমের লুপটিতে একটি সন্নিবেশ করান এবং সমস্ত কিছু এখনও পুরো ফ্রেমেট্রেটের মতো একইভাবে স্থানান্তরিত এবং প্রতিক্রিয়াযুক্ত হওয়া উচিত।
অবশেষে, 2 ডি গেমসের কাজ করার বিষয়ে আপনার ভাল পরিমাণ অভিজ্ঞতা না পাওয়া অবধি দয়া করে 3 ডি (এবং কোয়ার্টারিয়নস এবং ম্যাট্রিকেস) থেকে ভাল রাখুন force আমি বলার উদ্যোগ নেব যে বেশ কয়েকটি গেম ডেভেলপাররা আসলে কোয়ার্ট্রিনস বা ম্যাট্রিকেস কীভাবে কাজ করে তা জানেন না - তবে কেবল সেগুলি কীভাবে ব্যবহার করতে হয় তা জানেন - অনেক পরে তাদের কাছে যান (বা কখনই নয়, 2 ডি গেমগুলি অনেক মজাদার এবং এটি বেশ কার্যকর হতে পারে) সফল)। মৌলিক স্তরে এটি করার জন্য আপনার লিনিয়ার বীজগণিত এবং সত্যিকারের আরও কিছু জানা দরকার নেই (তবে এটি সত্যই সহায়তা করে, তাই যদি আপনি পারেন তবে কিছু নাইট ক্লাসে যান)।
চূড়ান্ত বোনাস: আমার শিল্প শিক্ষক আমাকে সবসময় বলেছিলেন যে "আপনি যা মনে করেন তা আঁকবেন না , যা দেখছেন তা আঁকুন।" একই জিনিস এখানে প্রযোজ্য "তোমার কি মডেল না মনে ঘটবে ( object.position++
), মডেল সেখানে কি ঘটছে (` object.position + + = বেগ * সময়) "- অন্তত যুক্তিসংগত সীমা (যদি আপনি পুরোপুরি সঠিক সিস্টেম মডেলিং হয় না, কিন্তু করতে এমন কিছু যা একটি ভাল অনুকরণ)।