मैं जानना चाहता हूं कि यह कैसे संभव है, मैं एक निश्चित बिंदु पर एक वस्तु खींच सकता हूं और उस बिंदु पर जा सकता हूं जो स्क्रीन पर छुआ है। मैं इसे अपने खेल के लिए उपयोग करने की कोशिश कर रहा हूं, जहां उपयोगकर्ता स्क्रीन पर छूता है, बंदूक खिलाड़ी की स्थिति से निकलती है, लेकिन खिलाड़ी स्थिर है।

अग्रिम में धन्यवाद।

पी.एस.

क्या किसी प्रकार का दृश्य ग्राफिक है जो दिखाता है कि प्रत्येक प्लॉट android.

0
Manji 10 जून 2011, 02:45
मैं ड्रैग एंड ड्रॉप बनाने की कोशिश नहीं कर रहा हूं। प्लेयर आइकन पॉइंटए पर है और कभी हिलता नहीं है। हमलावर प्रेत उसकी ओर बढ़ते हैं। और मैं इसे उस स्थान तक पहुँचाने की कोशिश कर रहा हूँ जहाँ आप स्क्रीन पर स्पर्श करते हैं यह उस स्थान पर एक बुलेट भेजता है। लेकिन जब तक आप स्क्रीन को स्पर्श नहीं करते तब तक गोली नहीं खींची जाती।
 – 
Manji
10 जून 2011, 03:12

1 उत्तर

सबसे बढ़िया उत्तर

मुझे नहीं पता कि आप अपनी सभी चीजों को आकर्षित करने के लिए किस प्रकार की लाइब्रेरी का उपयोग कर रहे हैं, लेकिन यह मूल रूप से कोई फर्क नहीं पड़ता क्योंकि ऐसा करने के लिए आपको केवल दो चीजों को जानने की जरूरत है:

सदिश ज्यामिति के विवरण में जाए बिना:

1. आपको उस दिशा (x और y घटक) की गणना करने की आवश्यकता है जिसमें प्रक्षेप्य आपके माउस की स्थिति के आधार पर चलता है। आप केवल खिलाड़ी की स्थिति से माउस की स्थिति घटाकर यह दिशा प्राप्त करते हैं:

//x component of direction
float direction_x = mousePosition.x - playerPosition.x;
//y component of direction
float direction_y = mousePosition.y - playerPosition.y;

इस वेक्टर में वेग घटक जोड़ने के बजाय केवल एक दिशा प्राप्त करने के लिए, आपको इसे सामान्य करने की आवश्यकता है (इसलिए इसकी लंबाई 1 है):

float length =(float) Math.sqrt(direction_x*direction_x + direction_y*direction_y);
direction_x /= length;
direction_y /= length;

फिर आपको प्रोजेक्टाइल की स्थिति को दिशा_एक्स और दिशा_वाई घटकों को जोड़कर अपडेट करने की आवश्यकता है, उस गति से गुणा करें जिसे आप प्रक्षेप्य चाहते हैं (इस प्रक्रिया को रैखिक इंटरपोलेशन कहा जाता है, वैसे):

projectile_x += direction_x*speed;
projectile_y += direction_y*speed;

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

0
WarrenFaith 10 जून 2011, 03:15
कोड को संभालने के लिए आपको HTML टैग बनाने की आवश्यकता नहीं है। बस कोड का चयन करें और "कोड नमूना" बटन दबाएं (या प्रत्येक पंक्ति में स्वयं 4 रिक्त स्थान जोड़ें)
 – 
WarrenFaith
10 जून 2011, 03:15
धन्यवाद! मैं पहले से ही सोच रहा था कि ऐसा करना इतना जटिल क्यों था। मैंने अक्सर पूछे जाने वाले प्रश्नों को देखा और कुछ भी नहीं मिला, इसलिए बहुत बहुत धन्यवाद :)
 – 
TravisG
10 जून 2011, 20:48
क्या मैं उस बिट को अपने बुलेट क्लास में या अपने धागे के अंदर रखूंगा।
 – 
Manji
10 जून 2011, 23:52
अच्छा प्रश्न। व्यक्तिगत रूप से, मैं अपनी बुलेट को यह गणना करने की क्षमता दूंगा कि यह लक्ष्य तक कैसे जाती है। अधिक विशेष रूप से, जब मैं बुलेट बनाता हूं, तो मैं इसे कंस्ट्रक्टर में एक लक्ष्य सौंप देता हूं, फिर कक्षा को "अपडेट ()" विधि देता हूं जिसे मैं प्रत्येक फ्रेम कहता हूं, जो गणना करता है कि इसे कितना स्थानांतरित करने की आवश्यकता है।
 – 
TravisG
11 जून 2011, 01:34
मेरे पास बुलेट क्लास है, यह अच्छा नहीं है लेकिन इसमें एक अद्यतन विधि है। मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या मैं आपके उदाहरण को बुलेट क्लास में स्वयं या गेमलूप थ्रेड में लागू करूंगा।
 – 
Manji
11 जून 2011, 02:11