এআই-তে সরানোর সময় মাধ্যাকর্ষণ কীভাবে বিবেচনা করবেন


9

আমি একটি 2 ডি গেম তৈরি করছি। বর্তমানে চারপাশে একটি হেলিকপ্টার রয়েছে, প্লেয়ার দ্বারা নিয়ন্ত্রিত। এটি তীর কীগুলি ব্যবহার করে নিয়ন্ত্রণ করা হয়: ইউপি, বাম এবং ডানদিকে।

Y অক্ষের সাথে এটির গতি dyএবং এক্স অক্ষের সাথে গতিও dx

এটি পদার্থবিজ্ঞানের নিম্নরূপ:

যখনই ইউপি টিপিত হয় না , dyধ্রুবক ত্বরণকে ত্বরান্বিত করে, অনির্দিষ্টকালের জন্য নীচের দিকে। (মাধ্যাকর্ষণ)। dxএটি বর্তমান মান থাকে।

যখন ইউপি টিপিত হয় , dyএটি বর্তমানে যা আছে তার থেকে ধীরে ধীরে ত্বরণকে ত্বরান্বিত করে 4 অবধি (wardর্ধ্বমুখী, এটি গতি 4 এ পৌঁছা পর্যন্ত)। dxএটি বর্তমান মান থাকে।

যখন LEFT টিপানো হয় , dxএটি বর্তমানে যা আছে তা থেকে -4 অবধি ধ্রুবক ত্বরণকে ত্বরান্বিত করে ।

যখন অধিকার টেপা হলে ধ্রুবক ত্বরণ যাই হোক না কেন থেকে এটা বর্তমানে, হয়, DX খানি আপ 4

(যখন বাম বা ডানদিকে টিপানো হয় এবং ইউপি এক সাথে চাপানো হয় না , যেমনটি আমি বলেছিলাম: dyক্রমবর্ধমান হেলিকপ্টারটিতে প্রভাব ফেলছে বলে গুরুতরতা আরও ছোট এবং ছোট হয়)

এই সবগুলি হেলিকপ্টারটি প্রায়শই সোজা লাইনের পরিবর্তে বাতাসে তোরণগুলি অনুসরণ করে।

এটি এমন পদার্থবিজ্ঞান তৈরি করে যা বেশ বাস্তববাদী বলে মনে হয়।

আমার প্রশ্নটি হ'ল:

প্রতিপক্ষ হেলিকপ্টার, একটি এআই, একই পদার্থবিজ্ঞান সিস্টেমটি ব্যবহার করে চলতে হবে move

বলুন যে এআই বর্তমানে যেখানে রয়েছে সেখান থেকে বি নির্দেশ করতে চায় get

এখানে চিত্র বর্ণনা লিখুন

যদি কোন মাধ্যাকর্ষণ না থাকে এবং গেমটিতে ধীরে ধীরে ত্বরণ না হয় তবে এটি সহজ হবে। আমি কেবল এআই এর অবস্থান থেকে বি নির্দেশিত করার জন্য একটি ভেক্টর আঁকতে এবং এআইকে এটি অনুসরণ করতে সক্ষম করব।

কিন্তু যেহেতু নেই মাধ্যাকর্ষণ এবং ধীরে ধীরে ত্বরণ, এআই একটি সরল রেখা সরাতে না পারে (প্রায়)। যথাসময়ে যথাসম্ভব যথাক্রমে এআইকে বিন্দু বিতে যাওয়ার সর্বোত্তম উপায় কী হবে?

এআই-কে নির্দিষ্ট গন্তব্যের দিকে নিয়ে যাওয়ার সময় আমি কীভাবে মাধ্যাকর্ষণটিকে বিবেচনায় নেব?

(যদি এটি ব্যাখ্যা করা সহজ হয় তবে দয়া করে বিন্দু B কে এআই এর মতো Y- অক্ষের সমান স্তরের হিসাবে বিবেচনা করুন এবং এটির তির্যক ক্ষেত্রে নয়))

ধন্যবাদ


আপনি এআইতে পদার্থবিজ্ঞানটি চালিয়ে যেতে পারছেন না কেন? যদি তাই হয় তবে আপনি পয়েন্টের দিকে অগ্রসর হওয়ার সময় এটি অক্ষম করতে পারবেন এবং এটি পৌঁছানোর পরে সক্ষম করুন।
Zhafur

@ জাফুর এটি এআইয়ের চলাচলকে অবাস্তব বলে মনে করবে বা প্লেয়ারের চলাচল কেমন লাগে তা থেকে কমপক্ষে তারতম্য ঘটবে। আমি চাইছি এআইয়ের চলাচল প্লেয়ারের চলাফেরার মতো দেখায়।
ব্যবহারকারী 3150201

উত্তর:


4

TL; ড:

TimeToStop.x = CurrentSpeed.x / Accelaration.x;

if (TimeToStop.x * CurrentSpeed.x >= 1.99 * DistanceFromTarget.x)
    slow_down_x(); // CurrentSpeed += Acc.x * direction;
else
    speed_up_towards_target_x(); // CurrentSpeed += Acc.x * direction;

ওয়াই এর সাথে একই। গতিবদ্ধ গতি মনে রাখবেন যাতে এটি শূন্য এবং সর্বোচ্চ গতির মধ্যে থাকে। শত্রুটির যদি কোনও পর্যায়ে খুব ধীর গতি থাকে এবং এটি থামার চেষ্টা করে, তবে এটি বিপরীত দিকে যেতে শুরু করতে পারে allow এটি অনুমতি দেবেন না if এটি ধীর হয়ে চলেছে এবং এর গতি 1 * এককের নিচে থাকলে এটি বন্ধ করুন।

দীর্ঘ সংস্করণ: যদি কোনও প্রতিবন্ধকতা না থাকে তবে এক্স-অক্ষের উপর চলাচলের (এবং প্রভাবিত করে না) y- অক্ষের উপর চলাচল সম্পূর্ণ অপ্রাসঙ্গিক। সুতরাং আপনি যে প্রশ্নটি বর্ণনা করেছেন তা দুটি পৃথক প্রশ্নে বিভক্ত হতে পারে।

  1. এক্স-এক্সিসে সেখানে সরানো
  2. এবং ওয়াই-এক্সিসে সেখানে সরানো।

CS.xএবং CS.yএক্স এবং ওয়াই অক্ষের উপর আমাদের বর্তমান গতি।

TS.x& TS.yপ্রাসঙ্গিক অক্ষে আপনার বর্তমান গতি বিবেচনা করে আপনি কেবল উলম্ব বা অনুভূমিকভাবে থামতে আপনার সময় লাগবে কি?

D.xএবং D.yপ্রতিটি অক্ষের দূরত্ব।

tl; dr: আপনি নিম্নোক্ত শর্তটি সত্য যেখানে এমন কোনও জায়গায় পৌঁছা না হওয়া পর্যন্ত আপনি এক্স-অক্ষের উপরে (সম্ভব হলে [যদি সর্বোচ্চ গতিতে পৌঁছাও না হন) ত্বরান্বিত করতে থাকুন:

if (TS.x * CS.x >= 1.99 * D.x) hit_the_breaks_on_x();

Y এর সাথে একই।


2

একটি অনুরূপ সমস্যার জন্য আমি যে পদ্ধতির ব্যবহার করেছি তা হ'ল প্রথমে লক্ষ্যকে একটি ভেক্টর আঁকতে হবে, তারপরে এটি বর্তমান গতিবেগের দিকের সাথে তুলনা করুন।

সুতরাং, বেগ ভেক্টর এবং লক্ষ্য ভেক্টরের মধ্যে স্বাক্ষরিত কোণটি ধরুন এবং ভেক্টরের আকারের সাথে একটি থ্রাস্ট প্রয়োগ করুন।

তাই আপনি যদি কোণ একটি লাল বেগ ভেক্টর এবং সবুজ লক্ষ্য ভেক্টর মধ্যে নেতিবাচক তারপর ইতিবাচক খোঁচা আবেদন, অন্যথায় কোন খোঁচা প্রয়োগ ও মাধ্যাকর্ষণ সাজানোর এটা করা যাক।এখানে চিত্র বর্ণনা লিখুন

নোট করুন যে আপনি চারটি চতুর্ভুজকে চিকিত্সা করতে হবে যেখানে লক্ষ্যটি আলাদা হতে পারে (যেন লক্ষ্যটি উপরের বাম কোণে একটি ধনাত্মক কোণে চাপ প্রয়োগের প্রয়োজন হত)।

এছাড়াও, লক্ষ্য বেগ থেকে বিচ্যুততার তুলনায় থ্রাস্টের পরিমাণ প্রয়োগ করার বিষয়টি নিশ্চিত করুন।

প্রযুক্তিগতভাবে এটি মাধ্যাকর্ষণটিকে বিবেচনায় নিচ্ছে না, এটি বর্তমান অবস্থার জন্য ক্ষতিপূরণ দিচ্ছে এবং এর অর্থ এআই হেলিকপ্টারটি সরাসরি লক্ষ্যে পৌঁছতে পারে না তবে কিছুটা ডুবে যাবে। এটি আপনার গেমের জন্য বা নাও কাজ করতে পারে।


1
ধন্যবাদ। এ সম্পর্কে বেশ কয়েকটি প্রশ্ন: 1- "... ভেক্টরের আকারের সাথে একটি থ্রাস্ট প্রয়োগ করুন " । আপনি কি বোঝাতে চেয়েছিলেন, " কোণের আকার " ? 2- 'স্বাক্ষরিত কোণ' দ্বারা, আপনার অর্থ ইতিবাচক বা নেতিবাচক - সঠিক? যদি তাই হয় তবে এর চেয়ে কোনও কোণ বাদামী লাইনের উপরে থাকলে ইতিবাচক হয় এবং এটি বাদামী লাইনের নীচে থাকলে negativeণাত্মক হয়। রাইট? 3- যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনার অর্থটি হ'ল: প্রতিটি ফ্রেম, বর্তমান গতিবেগ ভেক্টর এবং বর্তমান ভেক্টরের লক্ষ্যকে লক্ষ্য করে কোণটি পান। তারপরে dx থেকে সংযোজন / বিয়োগ করুন এবং সেই অনুযায়ী ডাই করুন। এটা কি সঠিক?
ব্যবহারকারী 3150201

@ ব্যবহারকারীর প্রশ্নে হ্যাঁ। হ্যাঁ স্বাক্ষরিত / স্বাক্ষরযুক্ত প্রশ্নের বিষয়ে, atan2 আপনাকে দুটি ভেক্টরের মধ্যে স্বাক্ষরিত কোণ দিতে পারে। দেখে মনে হচ্ছে আপনি আমার বক্তব্য বুঝতে পেরেছেন, আমি অস্পষ্ট থাকলে ক্ষমা চাইছি।
জন্মসূত্রে

1

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.