भविष्यवाणी कैसे करें कि किक करने के बाद फुटबॉल की गेंद को AI खिलाड़ी द्वारा इंटरसेप्ट किया जाना चाहिए?

Aug 18 2020

यह प्रश्न पहले भी कई बार पूछा जा चुका है, लेकिन अधिकांश उत्तर उस समस्या का समाधान देते हैं जहाँ गेंद (लक्ष्य) को निरंतर वेग से आगे बढ़ना माना जाता है।

मेरे परिदृश्य में, मैं एक फुटबॉल खेल बना रहा हूं। जब मैं गेंद की कठोरता के लिए कुछ बल लगाकर गेंद को एक दिशा में किक करता हूं, तो मैं चाहता हूं कि एक दूसरा एआई खिलाड़ी गेंद के मार्ग में बिंदु खोजे जहां वह गेंद को रोक सके। अब यह गेंद प्रति फ्रेम धीमे रह सकती है, यह निरंतर गति के साथ चलती नहीं रहती है।

मैंने विज़ुअलाइज़ेशन के लिए एक छवि संलग्न की है।

मुझे गेंद की स्थिति, गेंद की वर्तमान गति, एआई खिलाड़ी की स्थिति, एआई खिलाड़ी की निरंतर गति पता है। मुझे ऐसा बिंदु कैसे मिलेगा, जहां AI खिलाड़ी गेंद को रोक सकता है?

मैं गेंद के वर्तमान वेग के साथ इस तरह के बिंदु की गणना करने में सक्षम हूं, लेकिन वह बिंदु सटीक नहीं है, और गेंद के वर्तमान वेग में प्रति फ्रेम के रूप में परिवर्तन होता है, क्योंकि गेंद हर फ्रेम के बाद धीमा रख सकती है। यह एआई खिलाड़ी को होमिंग मिसाइल की तरह काम करता है। इसके बजाय, मैं चाहता हूं कि AI खिलाड़ी एक बिंदु की भविष्यवाणी करे और बस उसे चलाए।

अब तक मेरे पास C # (एकता) कोड है:

public Vector3 CalculateIntercept()    
{       
     Vector3 pos = Ball.GetInstance().transform.position;
     Vector3 dir = Ball.GetInstance().GetVelocity();
     dir.y = transform.position.y;

     float dist = (pos - transform.position).magnitude;
     return pos + (dist / 6.17f) * dir; //6.17 is the AI player's constant speed.
}

गेंद पर कोई खींच नहीं है, लेकिन घर्षण के साथ एक भौतिक सामग्री है। मुझे लगता है कि इसे हल करने के लिए, मुझे त्वरण के लिए खाते की आवश्यकता हो सकती है।

कृपया इसे हल करने में मेरी सहायता करें। धन्यवाद!

जवाब

Natalo77 Aug 18 2020 at 16:58

आपका एकमात्र विकल्प अनुकार को चलाना है क्योंकि गेंद को लात मारी जाती है, तो एआई उस स्थान पर जाना शुरू कर देता है।