2 डी रस्सी टकराव का पता लगाने


13

मैं एक रस्सी बनाना चाहता हूँ जो निम्नलिखित यूट्यूब वीडियो की तरह वस्तुओं से टकरा सके:

2 डी खेल भौतिकी रस्सी

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

मुझे लगता है कि आपको प्रत्येक बिंदु पर कुछ सीडी करना होगा। मैं बॉक्स 2 डी का उपयोग करना चाहूंगा, इसलिए मैं सोच रहा हूं कि प्रत्येक बिंदु एक कठोर शरीर का काम करेगा? किसी भी सलाह की सराहना की जाएगी।


1
यदि आप ध्यान से वीडियो को अपने लिंक में देखते हैं, तो यह स्पष्ट है कि "रस्सी" का अनुकरण किया जाना वास्तव में एक श्रृंखला है, यानी एक निरंतर लचीले आदिम के बजाय एक पंक्ति में जुड़े अनम्य खंडों की एक बड़ी संख्या। यह सबसे स्पष्ट है जब रस्सी छोटे गोल बाधा के चारों ओर घूमती है; आप इसके चारों ओर कोनों को घूमते हुए देख सकते हैं। एक श्रृंखला एक निरंतर रस्सी की तुलना में अनुकरण करने के लिए बहुत आसान है; प्रत्येक लिंक बस एक टक्कर आदिम है और वे स्थायी रूप से एक दूसरे से जुड़े हुए हैं। अधिक ठोस व्यवहार के लिए, प्रत्येक लिंक को पूरी तरह से अनम्य के बजाय बहुत कठोर वसंत बनाएं।
पॉल जेड

जवाबों:


6

चूंकि आप Box2D का उपयोग कर रहे हैं, आप आयतों की एक श्रृंखला बना सकते हैं और उनमें शामिल होने के लिए Box2D के जोड़ों का उपयोग कर सकते हैं। वहां तुम्हारी रस्सी है।

एक मुड़ी हुई रस्सी से बाहर निकलने वाले कोनों से बचने के लिए, मैं दो विकल्पों की कल्पना कर सकता हूं:

  1. अपने रस्सी खंडों को गोल छोर दें (ताकि वे अब आयत न हों)
  2. इस रस्सी को स्वयं अदृश्य बनाएं और इसका उपयोग केवल भौतिकी के लिए करें। प्रत्येक फ्रेम में जोड़ों के पदों ले लो और का उपयोग करें कि मक्खी है कि खिलाड़ी पर एक रस्सी आकर्षित करने के लिए होगा देखते हैं।

चेतावनी: मैंने कभी भी स्वयं यह कोशिश नहीं की है, लेकिन मैं यह देखने में विफल रहता हूं कि जब आपके द्वारा पोस्ट किया गया वीडियो व्यावहारिक रूप से समान रूप से प्रदर्शित होता है, तो सम्मिलित आयतों की एक श्रृंखला कैसे विफल हो सकती है।

संपादित करें: मैंने अभी पॉलज़ को देखा और मुझे उसी चीज़ का एहसास हुआ। सवाल पर उनकी टिप्पणी भी पढ़ें।


2

एक त्वरित Google ने इसे यहां फेंक दिया । एक साधारण रस्सी को लागू करने के लिए Box2D का उपयोग करते हुए एक डेमो, विवरण और कोड (फ्लैश में)। दृश्य के शीर्ष पर रस्सी स्वयं और ब्लॉक से टकराती है।


0

यहाँ मैं क्या करूँगा, रेखा पर प्रत्येक बिंदु को एक वृत्त बनाइए, पर्याप्त बिंदु बनाइए जो मंडलियाँ ओवरलैप करती हैं। टीथर प्रत्येक बिंदु को पड़ोसी है, मानक टकराव के बजाय इस टीथर को एक दूसरे से निश्चित दूरी पर बने रहना चाहिए।

मैं Box2D नहीं जानता, लेकिन मुझे लगता है कि कार्यक्षमता की आवश्यकता है।


0

मूल रूप से Box2D में एक रोप ब्रिज डेमो था, जो पतले बक्सों से बना होता था, जो बिंदु-दर-बिंदु बाधाओं के साथ जुड़ता था; यह शुरू करने के लिए एक ठीक जगह होगी (मुझे नहीं पता कि यह अभी भी उस डेमो के साथ जहाज करता है, लेकिन इसे फिर से बनाना सरल होगा)।

यह एक कठोर शरीर सिम्युलेटर के स्वतंत्र रूप से दूरी की कमी के साथ कणों के रूप में रस्सी को लागू करने के लिए काफी आसान है (जैसा कि आप उल्लेख करते हैं, इस लेख में वर्णित एक की तरह वेरलेट एकीकरण और बाधा समाधान योजना का उपयोग करके: http://www.gamasutra.com/resource_guide/ 20030121 / जेकबसन_पीएफवी.एचटीएम ), लेकिन यदि आप कठोर शरीर को अपनी रस्सी पर प्रतिक्रिया करना चाहते हैं (जैसे कि वीडियो, झूलने वाले बॉक्स के साथ) तो यह बहुत अधिक जटिल हो जाता है। मैं Box2D जैसे उपकरणों के एक व्यापक सूट के साथ शुरू करूँगा और इसके बजाय पीछे की ओर काम करूँगा और कणों से निर्माण करूँगा।


0

मुझे यह एल्लेग्रो खेल याद है: कामदेव , स्पीडहैक 2002 से। इसमें रस्सियों के लिए एक कार्यान्वयन शामिल है जो दृश्यों के साथ टकराता है। PhysParticles और HeartTrails की कक्षाओं को heart_tails.cpp फ़ाइल में इसके स्रोत कोड में देखें

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