मैं एक स्कूल प्रोजेक्ट के लिए रेसिंग गेम पर काम कर रहा हूं। विजुअल स्टूडियो 10 प्रो, और इरलिच का उपयोग करना। खराब व्याकरण के लिए खेद है>।>, और यह मेरा पहला सवाल है, इसलिए यह सुनिश्चित न करें कि यह सही हो गया है या नहीं।मुझे कैसे पता चलेगा कि कोई ऑब्जेक्ट किसी बिंदु के पहले या बाद में है या नहीं?
मैं इसे कैसे काम करना चाहता हूं यह है कि मैं ट्रैक पर विभिन्न बिंदुओं पर 0pपर मार्ग बिंदु बना देता हूं और फिर मैं अपना रास्ता तय करता हूं कि यह देखने के लिए कि क्या कोई कार अपने अगले मार्ग से पिछली है (अगली इसे "जरूरत है"), यदि हां तो यह अगली रास्ता तय करता है, अन्यथा कुछ भी नहीं।
जिस तरह से मुझे उम्मीद है कि यह काम करेगा, मैं एन से 1 + तक वेक्टर बना देता हूं, फिर वेक्टर को ढूंढें जो पहले वेक्टर के लिए लंबवत है। तब मैं देखता हूं कि वस्तु उस वेक्टर के सामने या पीछे है या नहीं। एक नया बिंदु पर पीछे जा रहा बिना तो लोगों
अपडेट nextwaypoint अधिक: मैंने पाया एक Gamedev.net forumpost कि मुझे इस समारोह बनाने में मदद की:
void Engine::checkWaypoint(Vehicle* vehicle) { btVector3 vector = waypoints[vehicle->nextWaypoint]; // n btVector3 nextVector = waypoints[vehicle->nextWaypoint + 1]; // n+1 vector = nextVector - vector; // First vector btVector3 pos = btVector3(vehicle->position.X,vehicle->position.Y,vehicle->position.Z); float product = vector.dot(pos - waypoints[vehicle->nextWaypoint]); // positiv = before, negative = behind if(product < 0) vehicle->nextWaypoint += 1; }
इस के साथ वर्तमान कीड़े है।
जब यह अंत तक हो जाता है और रीसेट हो जाता है, तो यह पहले मार्ग बिंदुओं पर ट्रिगरिंग बंद कर देता है।
तो मेरे सवालों का:
इस यह करने के लिए एक अच्छा तरीका है?
क्या मैंने यह सही किया?
आपको बेहतर जवाब प्राप्त करने के लिए, [कोई जवाब स्वीकार करना चाहिए] (http://stackoverflow.com/faq#howtoask), या अगर कोई आपको विश्वास दिलाता है तो दिए गए उत्तरों पर टिप्पणी करें। – Synxis