खिलाड़ी आगे बढ़ रहा है, वह कूद रहा है या चढ़ रहा है?


11

एक 2 डी भौतिकी-आधारित प्लेटफ़ॉर्मर गेम में, जिसमें सीढ़ी है, आप यह कैसे निर्धारित करते हैं कि खिलाड़ी ऊपर जा रहा है या कूदने के कारण उसे सीढ़ी पर चढ़ना है, जैसे कि आप जानते हैं कि किस एनीमेशन को खेलना है?

और सामान्य तौर पर, स्पष्ट रूप से दिशा वेक्टर खेलने के लिए एनीमेशन का निर्धारण करने के लिए पर्याप्त नहीं है: आप आंदोलन के कारण का निर्धारण कैसे करते हैं (इसलिए आप जानते हैं कि सही स्प्राइट का उपयोग करना है)?


1
यदि कोई खिलाड़ी सीढ़ी पर है, तो क्या वह वास्तव में हवा में है?
डेरेक

जवाबों:


15

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

इसके बारे में सोचें (जैसा कि मैंने कहा, मुझे अक्सर यह समस्या है)। गेम लॉजिक को पता होना चाहिए कि आप सीढ़ी पर हैं, यह मानते हुए कि आप एक स्मार्ट प्रोग्रामर हैं। एक बेहतर व्याख्या के लिए, मेरे पास एक फ़ाइल संग्रह प्रकार है, और दिन के लगभग एक घंटे बर्बाद करने की कोशिश कर रहा है कि डेटा का आकार कैसे प्राप्त करें और मैंने कभी भी यह सोचने के लिए बंद नहीं किया कि, जब मैं फ़ाइल में लोड करता हूं, तो मैं अब इसका आकार जानिए: P

इसका कारण यह है कि यह विशेष रूप से संबंधित है, क्या आप इसे "अब देख रहे हैं कि मैं हवा में हूं, मैं सीढ़ी या कूदने पर कैसे पता लगाऊं?" ... जब आपको वास्तव में होना चाहिए? सोचें "मैं हवा में उतरने वाला हूं, लेकिन किस विधि से एफआईआरएसटी, ताकि मैं इसका उपयोग एनिमेशन के लिए कर सकूं।"


सरल उदाहरण: OnJump()अपनी jumpingबूलियन को सच में बदलें , और फिर यदि आप हवा में हैं और jumpingझूठे हैं, तो आप या तो गिर रहे हैं या सीढ़ी पर हैं, आदि
यहोशू हेजेज

6

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


2

ऐसा लगता है कि खिलाड़ियों को ऊर्ध्वाधर वेग सेट करने वाले टकराव पर क्या कभी घटना होती है, इसका उपयोग एक ध्वज को सेट करने के लिए भी किया जा सकता है जो निर्दिष्ट करता है कि किस एनीमेशन का उपयोग करना है।

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


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

1

जंप वेलोसिटी सेट करते समय अक्षर स्टेट को STATE_JUMPING पर सेट करें। ऐसा करने से आपको हमेशा पता चलता है कि खिलाड़ी किस राज्य में है और खिलाड़ियों की स्थिति की जांच करके उसके अनुसार कार्य कर सकता है।

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