2010-07-15 16 views
16

अरे, मैं वर्तमान में 2 डी वीडियो गेम में टकराव प्रतिक्रिया को लागू करने के विभिन्न तरीकों की तलाश में हूं, इस ट्यूटोरियल के समान कुछ मेटनेट में है: N Tutorial मैं एक्सएनए में कुछ लागू करने की तलाश में हूं, लेकिन कोई भी भाषा होगी ठीक रहो। मुझे में वास्तविक सिद्धांत की तुलना में प्रोग्रामेटिक रूप से लागू करने में अधिक दिलचस्पी है। मैं अधिक शुरुआती दोस्ताना सामग्री पसंद करूंगा, लेकिन मैं अधिक अग्रिम विषयों का स्वागत करता हूं।अच्छा 2 डी टकराव प्रतिक्रिया संदर्भ

तो क्या कोई कुछ अच्छा 2 डी टकराव प्रतिक्रिया लेख/पुस्तकें सुझा सकता है?

(पुनश्च: मैं पता लगाने की तुलना में प्रतिक्रिया में अधिक रुचि रखते हूँ)

+0

क्षमा करें, हम stackexchange साइटों पर माइग्रेट नहीं कर सकते हैं। लेकिन अगर आप उन्हें एक्सेस कर सकते हैं (बीटा में gamedev है?) आप बस सवाल पूछ सकते हैं। – Will

उत्तर

15

N tutorial जो आपने पहले से ही उल्लेख किया है वह शुरू करने के लिए एक महान संसाधन है। मैं बहुत अच्छे लेख 2D Polygon Collision Detection की भी सिफारिश करता हूं। यह अलग सी # कार्यान्वयन और अलग-अलग एक्सिस प्रमेय का उपयोग करके बहुभुज टकराव का पता लगाने के लिए उदाहरण के साथ आता है और कुछ अवधारणाओं को बेहतर बताता है।

जहां तक ​​टकराव का जवाब है, यह परिदृश्य पर निर्भर करता है। गेम के लिए आप वर्तमान वेग पर आधारित संभावित टकराव की जांच कर सकते हैं और फिर टकराव को रोकने के लिए वास्तविक वेग को समायोजित कर सकते हैं। आप कुछ प्रकार के 'उछाल' प्रभाव को भी लागू कर सकते हैं। किसी भी मामले में यह ऑब्जेक्ट की वेग और दिशा दोनों को समायोजित करेगा।

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

+0

यह उत्कृष्ट है! – Jeff

+0

आपका स्वागत है! –

+1

मुझे यह सी # संस्करण बेहतर संसाधन होने के लिए मिलता है। ट्यूटोरियल धुरी पर बहुभुज प्रक्षेपित करने के बारे में गहराई से अधिक जाता है, जिसे मुझे एन टट मिस मिलते हैं। अगर किसी को एन टट से कोई भ्रम है, तो यह सी # एक देखें। – Jeff

0

भौतिकी इंजन बहुत जटिल हैं। आप मौजूदा एक का उपयोग कर बहुत बेहतर होगा।

  • Farseer (सी #, बॉक्स 2 डी के पुराने संस्करण से व्युत्पन्न)।
  • Box2d (सी ++, इसमें .NET बाइंडिंग है)
  • Chipmunk (सी, मुझे नहीं लगता कि यह एक सी # बंदरगाह है, लेकिन आप एक बना सकता है)।

यदि आप अपने गेम में भौतिकी का उपयोग करना चाहते हैं, तो फ़ारसीर या बॉक्स 2 डी बाइंडिंग का उपयोग करें। यदि आप भौतिकी के बारे में जानना चाहते हैं, तो बॉक्स 2 डी, या चिपमंक के सी # पोर्ट बनाने पर विचार करें। यदि आप केवल उत्सुक हैं, तो उनके सभी कोड ओपन सोर्स हैं।

+0

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

1

आपको कितना विस्तार चाहिए? इन सवालों में से कुछ का जवाब देने से आपको उन पैकेजों को खत्म करने में मदद मिलेगी जो आपको आवश्यक नहीं करते हैं।

क्या आपको ऑब्जेक्ट रोटेशन के बारे में चिंता करने की ज़रूरत है? फिर आपको लीवर बाहों, कोणीय गति, जड़ता के क्षण, और टोक़ के बारे में चिंतित होने की आवश्यकता है।

क्या आपको विकृति के बारे में चिंता करने की ज़रूरत है? फिर आपको परिमित तत्व विश्लेषण, तनाव/तनाव आदि में प्रवेश करने की आवश्यकता है - कुछ ऐसा वर्णन करता है जो वस्तुओं को बाह्य शक्तियों के आंतरिक रूप से प्रतिक्रिया देता है।

घर्षण प्रभावों के बारे में क्या? फिर आपको हवा प्रतिरोध के लिए घर्षण, या संभावित रूप से वेग मॉडल के गुणांक की आवश्यकता होगी।

गुरुत्वाकर्षण प्रभाव? विद्युत चुम्बकीय प्रभाव? अन्य बलों?

+1

मैं सचमुच सिर्फ मूल प्रतिक्रिया चाहता हूं। उदाहरण के लिए मारियो 3 जैसे कुछ लागू करने वाले कुछ ट्यूटोरियल ठीक होंगे (हालांकि न्यू मारियो में कुछ मजेदार भौतिकी है ...)। मैं जानना चाहता हूं कि टकराव का जवाब देने के लिए वे क्या करते हैं। क्या वे न्यूनतम सुधार वेक्टर उत्पन्न करते हैं और बाहर निकलते हैं? क्या वे छोटे स्प्रिंग्स का उपयोग करते हैं? लेकिन सबसे महत्वपूर्ण बात यह है कि मैं यह देख रहा हूं कि उन्होंने इसे कैसे कार्यान्वित किया। मैंने जो एन ट्यूटोरियल पोस्ट किया है वह काफी करीब है जो मैं ढूंढ रहा हूं, लेकिन मैं गहराई से कुछ और करना चाहता हूं। – Jeff

-2
+0

मैंने इसके बारे में सुना है। टक्कर के अनुसार यह क्या है? इसके अलावा, वास्तव में जो मैं खोज रहा हूं, लेकिन धन्यवाद :) – Jeff

+0

मुझे यकीन नहीं है कि आप किस माहौल में विकास कर रहे हैं, लेकिन मैक और आईफोन के लिए कोकोस 2 डी का उपयोग किया जा सकता है, लेकिन मुझे यकीन नहीं है कि यह और क्या है के लिए इस्तेमाल किया जा सकता है (यदि कोई है।) – gWaldo

+0

कोकोस सेब उत्पादों के लिए है, एक्सएनए नहीं – redcodefinal

1

आप टक्कर resp के लिए एक बुनियादी सवाल का जवाब चाहते हैं onse, यहाँ यह है:

for each pair of objects that collide 
    ask gently to the collision detection lib their interpenetration distance 
    Apply an impulse (i.e. a force in the duration of the frame) to both objects : 
     force proportional to penetration depth (you will have to tune the coef by hand) 
     direction : perpendicular to the collision normal. 
     application point : the collision point (approximately, since it s not a point anymore but a volume) 
integrate (Euler, Verlet,)\ 
0

मैं एक ही जानकारी के लिए भी खोज रहा था, सबसे उपयोगी बात मैंने पाया अब तक था

http://www.myphysicslab.com/collision.html

यहाँ मेरे लिए और भी खराब बात यह है कि टहत यह है है घर्षण के साथ (टेंगेंट टकराव आवेग केवल सामान्य आवेग) और मुझे लगता है कि के साथ ऐसा घर्षण आवेग बेहतर होगा लेकिन अभी भी को ट्यूटोरियल नहीं मिला है किको सही ढंग से कार्यान्वित कैसे करेंकि