ท่อร่วมชน Box2D?

ฉันเคยเห็นมาว่ามี b2Manifold สิ่งที่ฉันต้องการทำให้สำเร็จคือการตรวจสอบว่ามีการชนกันที่ส่วนบนของวัตถุชิ้นใดชิ้นหนึ่งที่ชนกันหรือไม่

ฉันได้ตั้งค่า b2ContactListener แล้วและใช้งานได้ดี ฉันแค่อยากจะให้การชนที่แม่นยำยิ่งขึ้นโดยการตั้งค่าท่อร่วมเพื่อตรวจสอบว่า b2Body ตัวหนึ่งอยู่ด้านบนของ b2Body ตัวอื่นที่ชนกันหรือไม่

ฉันจะทำเช่นนี้ได้อย่างไร?

ขอบคุณ!

http://postimage.org/image/kbfr7c5db/


person SimplyKiwi    schedule 18.07.2012    source แหล่งที่มา
comment
พิจารณา 'ท่อร่วมชน' คุณสามารถรับสิ่งเหล่านี้ได้จากฟังก์ชัน contact Listener และตรวจสอบตามปกติที่นั่น แต่ก็ไม่ได้ตรงไปตรงมาทั้งหมด วิธีนี้อาจช่วยได้ iforce2d.net/b2dtut/collision-anatomy   -  person iforce2d    schedule 18.07.2012
comment
ว้าวนั่นเป็นเรื่องยากมาก ถ้าฉันให้คุณค่าหัว 50 คะแนน คุณจะแสดงรหัสที่แน่นอนที่ฉันต้องใช้เพื่อดูว่า CCSprite ที่มี b2Body ติดอยู่นั้นไปทับ CCSprite อีกตัวที่มี b2Body ติดอยู่ด้วยหรือไม่ ขณะนี้ฉันใช้บทช่วยสอนของ Ray Wenderlich ที่นี่เท่านั้น: raywenderlich.com/505/ ... และฉันมีส่วนนั้นได้ผล ฉันแค่ต้องคิดให้ออก   -  person SimplyKiwi    schedule 19.07.2012
comment
ฉันไม่รู้อะไรเกี่ยวกับเรื่อง CC ขอโทษด้วย บางทีแค่ดูตำแหน่งของร่างกายตอนที่ชนกันก็น่าจะเพียงพอแล้ว?   -  person iforce2d    schedule 19.07.2012
comment
ตำแหน่งหมายถึงจุดฉลาด? พวกมันเคลื่อนไหวอยู่ตลอดเวลาจนทำให้ภาพนั้นผิดเพี้ยนไป เว้นแต่คุณจะหมายถึงอย่างอื่น   -  person SimplyKiwi    schedule 19.07.2012
comment
ตำแหน่งเหมือนใน body->GetPosition() เมื่อชนกัน คุณหมายถึงคุณต้องการติดตามอย่างต่อเนื่องเมื่อมีบางสิ่งอยู่ด้านบนหรือด้านล่างใช่หรือไม่ ฉันเดาว่าคุณสามารถดูตำแหน่งของจุดท่อร่วมที่สัมพันธ์กับลำตัวได้ ยังดีกว่านั้น คุณสามารถติดอุปกรณ์เซ็นเซอร์บนร่างกายในตำแหน่งที่เหมาะสม และใช้เครื่องฟังแบบสัมผัสเพื่อทราบว่าเซ็นเซอร์กำลังสัมผัสกับสิ่งใดสิ่งหนึ่ง - นี่คือวิธีที่แนะนำ ดูหัวข้อคำถามฉันสามารถข้ามไปบนเว็บไซต์ของฉันที่นั่น เซ็นเซอร์สามารถอยู่ที่ใดก็ได้ในร่างกาย และคุณสามารถมีได้มากกว่าหนึ่งตัว เช่น tinyurl.com/83jyvzh   -  person iforce2d    schedule 19.07.2012
comment
โอเค ฉันจะทำเช่นนั้น คำถามสุดท้าย เซ็นเซอร์มีตำแหน่งหรือไม่? ฉันสามารถตรวจสอบได้ว่าเซ็นเซอร์ตัวหนึ่งอยู่เหนือเซ็นเซอร์อื่นหรือไม่ เพราะยังมีโอกาสโดนเซ็นเซอร์จากด้านข้างได้   -  person SimplyKiwi    schedule 19.07.2012
comment
คุณสามารถสร้างเซ็นเซอร์เป็นรูปทรงใดก็ได้ที่คุณต้องการเพื่อป้องกันไม่ให้ถูกกระแทกจากด้านข้าง อาจเป็นวงกลมเล็กๆ หรือกล่องขนาดใหญ่ และคุณสามารถมีได้เป็นพวง   -  person iforce2d    schedule 19.07.2012
comment
ฉันสับสน. ไม่ว่าจะมีรูปร่างแบบไหนก็สามารถตีจากด้านข้างได้ แล้วทำไมมันถึงสำคัญล่ะ? ฉันกำลังดูคำถามนี้ด้วย (เขาพยายามทำให้สำเร็จเช่นเดียวกับที่ฉันพยายาม): stackoverflow.com/questions/7459208/   -  person SimplyKiwi    schedule 19.07.2012
comment
คุณช่วยแสดงตัวอย่างรูปร่างที่คุณใช้ และกรณีที่คุณต้องการแยกแยะได้ไหม   -  person iforce2d    schedule 19.07.2012
comment
ฉันได้สร้างรูปภาพเพื่ออธิบายสิ่งที่ฉันต้องการทำ ฉันเพิ่มลิงก์ไปยังคำถามด้านบน   -  person SimplyKiwi    schedule 19.07.2012
comment
เดี๋ยวก่อน เรากำลังพูดถึงแพลตฟอร์มแบบทางเดียวหรือเปล่า? วิธีนี้อาจช่วยได้ iforce2d.net/b2dtut/one-way-walls   -  person iforce2d    schedule 19.07.2012
comment
ลิงก์นั้นดูเหมือนจะทำสิ่งที่ฉันต้องการอย่างแน่นอน แม้ว่าจะมีหลายสิ่งหลายอย่างในนั้นที่ทำให้ฉันสับสน เช่นค่าความเร็ว เป็นต้น ฉันไม่ได้ใช้ค่าความเร็วใด ๆ ใน Box2D ดังนั้นจึงทำให้เกิดความสับสน หากคุณสามารถโพสต์โค้ดที่เกี่ยวข้องได้โดยไม่มีค่าความเร็วที่ทำให้เกิดความสับสน ฉันจะยอมรับคำตอบของคุณและโหวตให้! ขอบคุณสำหรับความช่วยเหลือทั้งหมดจนถึงตอนนี้!!! :)   -  person SimplyKiwi    schedule 19.07.2012
comment
ขอโทษนะเพื่อน โค้ดที่เกี่ยวข้องอยู่ในหน้านั้น และไม่ได้มาโดยไม่มีค่าความเร็ว... อย่างที่คุณบอก ตำแหน่งของคุณจะมีการเคลื่อนไหวอย่างต่อเนื่อง   -  person iforce2d    schedule 20.07.2012
comment
เอาล่ะ ขอบคุณสำหรับความช่วยเหลือ ฉันจะตรวจสอบเพิ่มเติม!   -  person SimplyKiwi    schedule 21.07.2012