উত্তর:
সহজ উপায় হ'ল ইউলার সংহতকরণ। আপনাকে অবস্থান ভেক্টর এবং বেগ ভেক্টর সংরক্ষণ করতে হবে। প্রতিটি ফ্রেমে:
( এক্স scalars জন্য, এক্স ভেক্টর জন্য)
নিশ্চিত হন যে ডিটি ছোট ...
| জি | পৃথিবীর জন্য প্রায় 9.8 মি / সেঃ এবং চাঁদের জন্য প্রায় 1.6 মি / এস²
মহাকর্ষ মিথস্ক্রিয়ার কারণে ক্রিয়াকলাপটি ফোর্সটি হ'ল:
এটি প্রতিটি শরীরে প্রভাব ফেলে এবং এটি অন্যটির দিকে নির্দেশ করে।
জি স্কালে খুব বিখ্যাত মহাকর্ষীয় ধ্রুবক এটি সম্পর্কে 6.67e-011 এন (মি / কেজি) হল ² এর
যেহেতু আপনি ত্বরণে আগ্রহী:
আপনার ত্বরণটি গণনা করার জন্য আপনাকে কেবল গ্রহের ভর (এম 2) এবং ব্যাসার্ধ (আর) জানতে হবে।
সাধারণত ত্বরণ যা গ্রহকে আপনার মহাকাশযানের দিকে নিয়ে যায় তা নগণ্য কারণ সাধারণত এম 2 এর তুলনায় এম 1 নগণ্য।
যাইহোক, আপনি যদি একটি ছোট গ্রহাণুতে অবতরণের চেষ্টা করছেন তবে সম্ভবত আপনাকে সাধারণ সূত্রটি ব্যবহার করতে হবে দ্বিতীয় ধাপে মোট বল ভেক্টরটিতে সেই বল যোগ করা।
সম্পাদনা করুন:
হিসাবে বাস্তবায়নের কিছু ইঙ্গিত প্রয়োজন। আপনার প্রয়োজন হবে:
সমস্ত ভেক্টর লাইব্রেরির মধ্যে প্রথম: আপনার গেমটি মনো / দ্বি / গাছ / চারটি হতে পারে ... মাত্রিক, আপনি যতক্ষণ না আপনার ক্ষেত্রে কে 3 ডি শব্দের অভিক্ষেপ হিসাবে বিবেচনা করেন, শারীরিক রাউলগুলি ধরে রাখে।
যদি n আপনার পছন্দ মাত্রা হয় (সম্ভবত আপনার ক্ষেত্রে 2 বা 3), গ্রন্থাগারের অবশ্যই থাকতে হবে:
আপনি এমন একটি লাইব্রেরি ব্যবহার করতে পারেন যা এটি করে বা নিজে প্রয়োগ করে; একটি ভেক্টর স্ট্রাক্ট বা ক্লাস হতে পারে, পছন্দ আপনার is
প্রতিটি ইঞ্জিন দ্বারা বর্ণনা করা উচিত:
আপনার ব্যবহারকারী ইনপুট প্রতিটি ইঞ্জিনকে 0 (অব্যবহৃত ইঞ্জিন) এবং 1 (পূর্ণ শক্তি) এর মধ্যে থাকা একটি সংখ্যা সরবরাহ করতে ব্যবহৃত হবে: ইঞ্জিন (ব্যবহার) ফ্যাক্টর।
ইঞ্জিনের আসল ভরসা পেতে এবং উপলব্ধ সমস্ত ইঞ্জিনের সমস্ত ফলাফলের যোগফল দিতে তার থ্রাস্ট ভেক্টরের জন্য ইঞ্জিন ফ্যাক্টরকে গুণান; এটি আপনাকে দ্বিতীয় ধাপের এফ দেবে ।
আপনার ইঞ্জিন ফ্যাক্টরটি প্রতিটি ইঞ্জিনের জন্য আসল জ্বালানী ব্যবহার জানতে ব্যবহার করা যেতে পারে: জ্বালানী ব্যবহারের মাধ্যমে এবং তাত্ক্ষণিক জ্বালানী ব্যবহারের জন্য ডিটি দিয়ে ইঞ্জিন ফ্যাক্টরকে গুণান ; মোট জ্বালানী ক্ষমতা পরিবর্তনশীল থেকে আপনি এই মানটি বিয়োগ করতে পারেন (এটি যদি আপনার জ্বালানী ভর বিবেচনাযোগ্য হয় তবে আপনার মোট ভর এম আপডেট করার সুযোগ দেয় )।
এখন আপনি নতুন অবস্থানটি গণনা করতে ইন্টিগ্রেশন ব্যবহার করে এগিয়ে যেতে পারেন, আপনার গ্রহের পৃষ্ঠের সাথে সংঘর্ষের জন্য পরীক্ষা করতে পারেন; যদি কোনও হয় তবে ল্যান্ডিংটি সাফল্য বা বিপর্যয় কিনা তা বলতে বেগ বেগের দৈর্ঘ্যটি ব্যবহার করুন।
স্পষ্টতই অন্য সংঘর্ষের চেকগুলি করা / করা উচিত, কিছু পৃষ্ঠ সত্তাকে ল্যান্ডিং পয়েন্ট হিসাবে অনুমোদিত করা যায় না যাতে প্রতিটি সংঘর্ষ মারাত্মক হয় one
আমি কীভাবে ইনপুট পাব এবং কীভাবে আপনার স্পেসশিপটি আপনাকে রেন্ডার করব তা ছেড়ে দিয়েছি; উদাহরণস্বরূপ, ফ্রেম দ্বারা ইঞ্জিনের স্থিতি ফ্রেম রেন্ডার করতে আপনি ইঞ্জিন ফ্যাক্টরটি ব্যবহার করতে পারেন।
অন্যান্য দুর্দান্ত উত্তরটি কিছুটা তাত্ত্বিক বলে মনে হচ্ছে, এখানে সহজ কোড সংস্করণটি রয়েছে:
// Position of the lander:
var positionX = 100.0;
var positionY = 100.0;
// Velocity of lander
var velocityX = 0.0;
var velocityY = 0.0;
// Acceleration due to gravity
var gravity = 1.0;
// If the player is pressing the thrust buttons
var isThrusting = false;
var isThrustingLeft = false;
var isThrustingRight = false;
// Thrust acceleration
var thrust = -2.0;
// Vertical position of the ground
var groundY = 200.0;
// Maximum landing velocity
var maxLandingVelocity = 3.00;
onUpdate()
{
velocityY += gravity;
positionX += velocityX;
positionY += velocityY;
if (isThrusting)
{
velocityY += thrust;
}
if (isThrustingLeft)
{
velocityX += thrust;
}
else if (isThrustingRight)
{
velocityX -= thrust;
}
if (positionY >= floorY)
{
if (velocityY > maxLandingVelocity)
{
// crashed!
}
else
{
// landed successfully!
}
}
}
দুর্ভাগ্যক্রমে, এখানকার গণিত লোমশ হয়ে যায়। এফএক্সআইআইআই এর উত্তর একটি পতনযোগ্য বস্তুর সাধারণ ক্ষেত্রে ভাল তবে আপনি একটি রকেটের কথা বলছেন - এবং রকেট জ্বালিয়ে দেয়।
আমি কোডটি দেখেছি যা এটি করে তবে এটি সম্পূর্ণ অনির্ধারিত ছিল এবং আমি এর পিছনে গণিতটি বের করতে কখনই পরিচালনা করতে পারি নি। যদি আপনি কোনওভাবেই সিপিইউ-সীমিত না হন তবে আমি এটিকে বিরক্ত করব না এবং কেবল এটিকে জোর করবো না - FxIIIs পদ্ধতিটি খুব স্বল্প সময়ের জন্য প্রয়োগ করা হয় এবং থ্রাস্ট সামঞ্জস্য করে (বা জ্বালানী ব্যবহারের জন্য যদি আপনি রকেটের থ্রোটলগুলি ফিঙ্গার হিসাবে জ্বলতে থাকে তবে বজায় রাখতে পারে রকেট জ্বালানী জ্বালিয়ে দেওয়া হিসাবে প্রতিটি পুনরাবৃত্তির মধ্যে নির্দিষ্ট চাপের পরিবর্তে নির্দিষ্ট ত্বরণ)।