फरसेर में बम विस्फोट कैसे हो सकता है जो आसपास की वस्तुओं को दूर धकेलता है?


14

मैं फरसेर में बम विस्फोट करने की कोशिश कर रहा हूं। मैंने बम के लिए एक घेरा बनाया। हालाँकि, अगर बम फट जाता है, तो इसके आसपास की वस्तुएं (शरीर) उड़ जानी चाहिए क्योंकि वे विस्फोट के भारी बल द्वारा पीछे धकेल दी जाती हैं। मुझे यकीन नहीं है कि उस बल को कैसे बनाया जाए, हालांकि - मैं इसे कैसे कर सकता हूं?


यह इंगित करने योग्य है कि फ़र्सर एक नमूना के साथ आता है जो विस्फोटों को लागू करता है। यह "एडवांस्डडेमो 5" (वर्तमान स्रोत में) है। यह क्लासिक थंडर के उत्कृष्ट उत्तर में निकटता विधि के समान है, केवल कम-परिष्कृत (एक एएबीबी के भीतर एक निश्चित-परिमाण आवेग)।
एंड्रयू रसेल

जवाबों:


28

मैं विस्फोट iforce2d पृष्ठ की जाँच करने की सलाह दूंगा । यह प्रदर्शन बनाम सटीकता वाले ट्रेडऑफ़ के साथ विस्फोटों को संभालने के विभिन्न तरीकों पर काम करता है। यह 3 विधियों पर जाता है जिन्हें मैं यहां संक्षेप में बताऊंगा। इसलिए यह केवल मुझे शोध के दौरान मिली जानकारी को संक्षेप में प्रस्तुत करना है और इसमें से कोई भी मेरा अपना काम नहीं है।

इसके अलावा, आप यहाँ आवेगों को लागू करना चाहते हैं न कि बलों को। यह समझने के लिए कि यह क्यों पढ़ें ।

निकटता विधि

निकटता विधि

यह वही तरीका है जो बाइट 56 उनके जवाब में जाता है। अवधारणा सरल है। एक विस्फोट बिंदु है और बिंदु से दूर विपरीत दिशा में एक आवेग लागू करें जो सभी वस्तुओं को उनकी दूरी के आधार पर एक ताकत के साथ प्रभावित करेगा।

पेशेवरों:

  • बहुत तेज़
  • कोड करने के लिए आसान है।

विपक्ष:

  • धमाके अचल वस्तुओं और स्थैतिक निकायों से होकर गुजरते हैं।
  • यदि आप केवल द्रव्यमान के केंद्र की दूरी की जांच करते हैं तो विस्फोट के प्रभाव क्षेत्र में आने वाली वस्तुओं को छोड़ दिया जा सकता है।
  • भूतल क्षेत्र को ध्यान में नहीं रखा जाता है।
  • सब कुछ एक ही बार में प्रभावित होता है।

रेकास्ट विधि

रेकास्ट विधि

यह एक काफी सरल है, अपने विस्फोट की उत्पत्ति से किरणों को बाहर निकालें और आवेगों को लागू करें जब वे एक वस्तु में टकराते हैं, जो दूरी द्वारा निर्धारित आवेग के साथ होता है।

पेशेवरों:

  • प्रोजेक्टाइल विधि की तुलना में कम प्रदर्शन गहन।
  • वस्तुओं द्वारा अवरुद्ध विस्फोट।
  • भूतल क्षेत्र को ध्यान में रखा।

विपक्ष:

  • सब कुछ एक ही बार में प्रभावित होता है।
  • विस्फोट जितना बड़ा होगा उतनी अधिक किरणें सुनिश्चित करें कि विस्फोट सब कुछ प्रभावित करता है।
  • निकटता विधि की तुलना में अधिक प्रदर्शन गहन।

कण विधि

कण विधि

मेरा व्यक्तिगत पसंदीदा। रेस्टिंग विधि के समान लेकिन किरणों के बजाय आप भौतिकी इंजन का लाभ उठाते हैं और छोटे छर्रों को थूकते हैं जो आपके दृश्य के साथ बातचीत करते हैं।

पेशेवरों:

  • बेहद आसान कोड-वार। गेंदों को उत्पन्न करें और प्रत्येक के लिए एक आवेग लागू करें। आपके पास प्रति टिक लिखने के लिए कोई कोड नहीं है। बस एक टाइमर है जो हालांकि चला जाता है और विस्फोट पूरा होने के बाद निकायों को निष्क्रिय / रीसेट करता है।
  • विस्फोट वस्तुओं द्वारा अवरुद्ध है।
  • भूतल क्षेत्र को ध्यान में रखा जाता है।
  • धमाका सतहों के बंद होने को दर्शाता है।
  • विस्फोट से आगे की वस्तुएं अधिक धीमी गति से प्रतिक्रिया करती हैं।
  • आप अपने प्रभाव को सही ढंग से विस्फोट प्रभाव को प्रतिबिंबित करने की अनुमति देने वाले भाग उत्पन्न करने के आधार के रूप में गेंदों का उपयोग कर सकते हैं।

विपक्ष:

  • प्रति-टिक जटिलता जोड़ता है।

5
बहुत अच्छा जवाब। मुझे विशेष रूप से कण विधि पसंद है। ऐसा लगता है कि हालांकि एक शक्तिशाली विस्फोट प्राप्त करना अधिक कठिन होगा । क्या कणों को अधिक द्रव्यमान देना तुच्छ है?
MichaelHouse

1
यह कणों के सभी भौतिक पहलुओं को प्रभावित करने के लिए तुच्छ है, सबसे अधिक प्रासंगिक घनत्व, वेग और भिगोना है। घनत्व को ऊपर ले जाना और एक उच्च वेग सेट करना आपको एक मज़ेदार हिंसक विस्फोट करने देगा।
क्लासिकथुंदर

क्या आपने विस्फोट कणों को उद्देश्य से कम किया है, या सिर्फ पूरे एनीमेशन को रोक दिया गया है। यह कणों में निरंतर घर्षण जोड़ने के लिए समझ में आता है।
यह

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

1
उत्कृष्ट उत्तर :) मैं अंतिम विधि में एक और प्रो जोड़ूंगा, जिसमें आप कुछ अच्छे दिखने वाले धुएं या धूल को खींचने के लिए गोली की स्थिति का उपयोग कर सकते हैं।
iforce2d

2
  • प्रभाव के बम की त्रिज्या के भीतर सभी वस्तुओं का चयन करें।
  • प्रत्येक वस्तु के लिए
    • आवेग के वेक्टर की गणना करने के लिए वस्तु स्थिति और विस्फोट के केंद्र का उपयोग करें। कुछ इस तरह normalize(object - center)
    • आवेग की भयावहता की गणना करने के लिए बम के केंद्र से दूरी का उपयोग करें। कुछ इस तरह(object - center).length
    • वस्तु के लिए एक आवेग लागू करेंपिछले चरणों में पाए गए वेक्टर और परिमाण का उपयोग करके करें।

जैसा कि आप परिमाण की गणना के लिए शुरू कर सकते हैं सरल रेखीय फॉलऑफ के साथ, फिर यदि परिणाम पसंद नहीं है, तो अन्य फ़ार्मुलों पर जाएं।


जब आप किसी वस्तु को समय के साथ प्रभावित करना चाहते हैं, तो मजबूरियां तब होती हैं जब यहां की स्थिति नहीं है। आवेग लागू करना अधिक सही होगा।
क्लासिकथंडर

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