सही ढंग से "डबल जंप" को लागू करना


23

मैं कोरोना (ट्रायल संस्करण का उपयोग करके 2 डी आईफोन गेम पर काम कर रहा हूं, इसलिए मैं उनके मंचों का उपयोग नहीं कर सकता)। खेल में आकाश के माध्यम से गिरने वाले चरित्र को शामिल किया गया है, और मैं चरित्र के लिए "डबल जंप" को लागू करने की कोशिश कर रहा हूं, जबकि गिरने के दौरान उसे कूदने में सक्षम होना चाहिए। मैं चरित्र को गिराने के लिए कोरोना की भौतिकी पुस्तकालय का उपयोग कर रहा हूं, और अब तक उसके कूदने की सबसे अच्छी विधि ऊर्ध्वाधर आवेग विधि का उपयोग कर रही है

object:applyLinearImpulse(0, -0.4, object.x, object.y)

मेरे सामने समस्या यह है कि जब चरित्र बस शुरू हो रहा है (ऊर्ध्वाधर वेग कम है), वह वास्तव में उच्च कूदता है, और जब वह थोड़ी देर के लिए गिर रहा है (ऊर्ध्वाधर वेग उच्च है), तो कूद नगण्य है। मैं अनुमान लगा रहा हूं कि सबसे अच्छा समाधान वेग के साथ किसी प्रकार के समीकरण का उपयोग इनपुट के रूप में है चाहे कूद को वेग के समान बनाया जाए, लेकिन मैं यह नहीं समझ सकता कि वह समीकरण क्या होगा।

ठीक है, तो यह सब मेरे विचार हैं। अंतिम प्रश्न यह है कि आप भौतिक विज्ञान के साथ दोहरी छलांग कैसे लागू करते हैं? क्या मेरी समस्या का उचित समीकरण है? क्या मुझे एक अलग तरीका अपनाना चाहिए? यह स्मैश ब्रोस जैसे खेलों में पहले भी किया जा चुका है, इसलिए एक दोहराए जाने योग्य समाधान है, है ना?

जवाबों:


37

बस ऊर्ध्वाधर वेग को शून्य पर सेट करें, और केवल उसी कोड को कॉल करें जिसे आप पहली छलांग करने के लिए उपयोग करते हैं।


4
ओह। वह ... वास्तव में बहुत अच्छी तरह से काम करता है। और इतना सरल कि मैं अब इसके बारे में नहीं सोचने के लिए मूर्खता महसूस करता हूं। ओह अच्छा। धन्यवाद!
जेसी जे

5
यह अक्सर चीजों को और अधिक जटिल बनाने के लिए लुभावना होता है :)
एडम हर्ट

2
सुरुचिपूर्ण जवाब!
lathomas64

1

मुझे यकीन नहीं है, लेकिन मुझे लगता है कि UT2K4 जैसे खेल तर्क का उपयोग कर सकते हैं:
यदि (पहले से ही कूद गया था और & quot; दोगुना कूद गया अभी तक &&; जमीन को छूकर && velocity.up लगभग 0.0f है) DoDoubleJump ();

जहाँ आपका वाई या जेड घटक है (जिस पर निर्भर है कि कोई एक ऊपर है)
इसका मतलब है कि आपका खिलाड़ी केवल एक डबल जंप कर सकता है जब वे अपनी पहली छलांग की अधिकतम ऊंचाई पर होते हैं और बस फिर से शुरू होने वाले होते हैं।
मुझे यह तरीका पसंद है क्योंकि यह थोड़ा सा कौशल पैदा करता है (आपको यह समय "वेग" के अंदर होने के लिए है। यह लगभग 0.0f है)।
आप जो चाहते हैं उसके आधार पर, आप सकारात्मक संख्याओं के प्रति "लगभग 0.0f" पूर्वाग्रह कर सकते हैं ताकि वे केवल तब ही डबल कूद सकें जब उदाहरण के लिए आगे बढ़ रहे हों।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.