2010-12-21 21 views
7

लंबी कहानी छोटी, मैं एक मंच गेम बना रहा हूं। मैं अभी तक कैलकुस लेने के लिए पुराना नहीं हूं, इसलिए मुझे डेरिवेटिव या इंटीग्रल का पता नहीं है, लेकिन मैं उनके बारे में जानता हूं। वांछित व्यवहार मेरे चरित्र के लिए स्वचालित रूप से कूदने के लिए होता है जब उसके ऊपर खड़े होने वाले उसके ऊपर से कोई भी ब्लॉक होता है; उदाहरण के लिए, सीढ़ियों। इस तरह खिलाड़ी कूदने की कुंजी को स्पैम करने के बजाए सीढ़ियों पर चढ़ने के लिए बाएं/दाएं रख सकते हैं।कैलकुलास? कुछ अन्य चर दिए गए समय-निर्भर चर के लिए हल करने में सहायता की आवश्यकता है

समस्या जिस तरह से मैंने कूदना लागू किया है; मैंने मारियो-स्टाइल जाने का फैसला किया है, और खिलाड़ी को उच्च कूदने के लिए लंबे समय तक 'कूद' रखने की अनुमति देता है। ऐसा करने के लिए, मेरे पास 'कूद' चर है जो प्लेयर के वाई वेग में जोड़ा जाता है। 'कूद' कुंजी दबाए जाने पर कूद चर एक सेट मान पर बढ़ जाता है, और 'कूद' कुंजी जारी होने के बाद बहुत तेज़ी से घट जाती है, लेकिन जब तक आप 'कूद' कुंजी को दबाते हैं, तब तक कम तेज़ी से कम हो जाती है, इस प्रकार निरंतर त्वरण प्रदान करता है जब तक आप 'कूद' पकड़ते हैं। यह एक दृष्टि से झटके, अचानक त्वरण के बजाय, एक अच्छा, बहती हुई कूद के लिए भी बनाता है।

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

अनिवार्य रूप नाटक में 5 चर हैं:

h -the height the character needs to jump to reach the stair top<br> 
j -the jump acceleration variable<br> 
v -the vertical velocity of the character<br> 
p -the vertical position of the character<br> 
d -initial vertical position of the player minus final position<br> 

Each timestep:<br> 
j -= 1.5;   //the jump variable's deceleration<br> 
v -= j;   //the jump value's influence on vertical speed<br> 
v *= 0.95;   //friction on the vertical speed<br> 
v += 1;   //gravity<br> 
p += v;   //add the vertical speed to the vertical position<br> 

v-initial is known to be zero<br> 
v-final is known to be zero<br> 
p-initial is known<br> 
p-final is known<br> 
d is known to be p-initial minus p-final<br> 
j-final is known to be zero<br> 

j-initial is unknown<br> 

इन तथ्यों के सभी देखते हुए, मैं एक समीकरण है कि जे के लिए समाधान होगा कैसे कर सकते हैं?

टीएल; डॉ मैं कैलकुस कैसे कर सकता हूं?

किसी भी व्यक्ति को बहुत धन्यवाद, जिसने इसे अभी तक बनाया है और इस समस्या के माध्यम से हल करने का फैसला करता है।

संपादित करें: यहां एक ग्राफ है जिसे मैंने Excel में एक उदाहरण से बनाया है। alt text

मैं एक समीकरण के बाद से कूद चर समय के साथ कम हो जाती है मुझे बी के लिए एक एक वांछित मूल्य को देखते हुए के लिए एक मूल्य को खोजने देंगे चाहते हैं, स्थिति मूल्य सिर्फ एक सरल परवलय नहीं है।

+1

यह, मुझे लगता है कि, http://math.stackexchange.com/ या http://gamedev.stackexchange.com/ – soulseekah

+0

@ user451527 से संबंधित है, मुझे स्टैक ओवेफ्लो में आपका स्वागत करने की अनुमति दें और केवल तीन चीजें याद रखें आम तौर पर यहां करें: 1) जब आप सहायता प्राप्त करते हैं, तो इसे विशेषज्ञता के क्षेत्र में ** ** उत्तर देने वाले प्रश्नों को भी देने का प्रयास करें 2) एफएक्यू पढ़ें !! 3) जब आप अच्छे प्रश्न और उत्तर देखते हैं, तो उन्हें ग्रे त्रिकोणों का उपयोग करके ** ** ऊपर उठाएं, क्योंकि सिस्टम की विश्वसनीयता उस प्रतिष्ठा पर आधारित होती है जिसे उपयोगकर्ता अपने ज्ञान को साझा करके प्राप्त करते हैं। यह भी स्वीकार करना याद रखें कि आपकी समस्या को हल करने के लिए बेहतर है, यदि कोई हो, ** चेकमार्क चिह्न ** –

+0

दबाकर जो भी आप करते हैं, mathoverflow.com के साथ math.stackexchange.com को मिश्रित न करें! अगर आप इसे किसी अन्य साइट पर पोस्ट करते हैं, तो यहां एक लिंक पोस्ट करें ताकि रुचि रखने वाले स्टैक ओवरफ़्लो सदस्य वहां चर्चा देख सकें। – MatrixFrog

उत्तर

1

यहां खेलने में दो कठिनाइयां हैं। पहला यह है कि आपके पास वास्तव में j -= 1.5 नहीं है, आपके पास j = max(0, j - 1.5) है। यह गणना में कुछ हद तक रिंच फेंकता है। इसके अलावा, आपकी घर्षण शब्द v *= 0.95 प्रत्यक्ष समाधान को मुश्किल बनाता है।

मैं इसके लिए एक लुकअप टेबल का उपयोग करने का सुझाव दूंगा। आप परीक्षण और त्रुटि से प्रत्येक संभावित b के लिए वांछित a को सटीक कर सकते हैं (उदाहरण के लिए a के मानों पर बाइनरी खोज जो आपको b आवश्यक है)। परिणामों को एक टेबल में स्टोर करें और गेम के दौरान बस एक साधारण टेबल लुकअप करें।

1

अगर मैं घर्षण अवधि उपेक्षा, और लगता है कि जे शून्य पर पहुंच से पहले वी शून्य तक पहुंच, मैं गणना की एक पृष्ठ के बाद मिलता है कि:

b = 1/(8*(deceleration^2)*gravity)*j0^4 - 1/(6*deceleration^2)*j0^3 

इस का हल काफी लंबा है, लेकिन बराबर लगभग है (10 < ख < 400) करने के लिए:

j0 = (10*(deceleration^2)*gravity*b)^0.25 
+0

वाह, आपके समर्पण के लिए धन्यवाद! यह सुनिश्चित करने के लिए मैं इसका परीक्षण करूंगा कि यह काम करता है, और योगदान के लिए फिर से धन्यवाद। मैं बस स्पष्ट हूं कि किस अवधि के मंदी के अनुरूप है। –

+0

यह आपके पाठ से स्थिरांक है। भौतिकी समस्या को हल करने के लिए एक्सेल का उपयोग करने के लिए deceleration = 1.5, गुरुत्वाकर्षण = 1 – tsvikas

1

Excel 2010 और उसके शोध लक्ष्य समारोह के व्यापक उपयोग के बाद, मैं मानों की तालिका बनाने के लिए सक्षम था, और एक्सेल मुझे इसके लिए एक अनुमानित ट्रेंडलाइन और समीकरण दिया था, जो मैंने काम किया जब तक मैं tweaked बाहर। समीकरण जे = 3.35 * एच^0.1 9 6 है, जहां जे प्रारंभिक कूद बल है और एच कूदने के लिए आवश्यक ऊंचाई है। आपकी सहायता के लिए धन्यवाद.

+0

+1। – ja72

संबंधित मुद्दे