2011-09-25 15 views
11

में किसी शरीर पर कार्यरत बलों को कैसे रोकें मैं एक गेम बनाने के लिए आईफोन पर box2d का उपयोग कर रहा हूं। मेरे पास एक ऐसा शरीर है जो गुरुत्वाकर्षण से नीचे या दाएं या बाएं नहीं होने के कारण प्रभावित होता है। यह किसी अन्य शरीर द्वारा मारा जाएगा और फिर दाएं या बाएं स्थानांतरित हो जाएगा। मेरे पास एक रीसेट बटन है जो शरीर को अपने शुरुआती बिंदु पर वापस ले जाता है। एकमात्र समस्या यह है कि यह अभी भी दाएं या बाएं चल रहा है। मैं उन बलों का सामना कैसे कर सकता हूं जो एक गेंद पहले ही यात्रा कर रही है? जब मैं अपना गेम रीसेट करता हूं तो मैं इस दाएं और बाएं आंदोलन से कैसे छुटकारा पा सकता हूं?बॉक्स 2 डी

उत्तर

25

box2d स्वचालित रूप से प्रत्येक सिमुलेशन चरण को बल देता है। मुझे लगता है कि रीसेट करते समय आप बस शरीर की स्थिति बदल रहे हैं, लेकिन यह वेग नहीं है।

body->SetLinearVelocity(b2Vec2(0,0)); 
body->SetAngularVelocity(0); 
+0

मैं इस तरह की कोशिश की है लेकिन http://stackoverflow.com/questions/39716111/cocos2dx-unable-to- एक दूसरे के लिए जब काम नहीं करता है दो वस्तु पास: अपने रीसेट करने की विधि के लिए इस कोड जोड़ें सेट-वेग- 0-0 – TomSawyer

+0

@ टॉमसायर: वे संभवतः वेग को रीसेट करने के बाद टकराते हैं और इससे उनके वेग को फिर से बदलना पड़ता है – Andrew

+0

मुझे लगता है कि वेग को रीसेट करने से एक ऑब्जेक्ट खड़ा हो जाता है। दूसरे को टक्कर देना असंभव है। वैसे भी यह सुनिश्चित करने के लिए कि एक वस्तु बंद कर दी गई है? – TomSawyer