Cocos2d หรือ Box2d?

ฉันกำลังเล่นเกมและต้องตรวจจับการชนกันระหว่างเส้นกับรูปหลายเหลี่ยม หลังจาก googling ไปมากดูเหมือนว่า cocos2d ไม่รองรับการชนกันของรูปหลายเหลี่ยมใช่ไหม

ฉันสามารถตรวจจับการชนกันของเส้นและเส้นตรงได้ แต่ไม่ใช่รูปหลายเหลี่ยม ฉันต้องย้ายไป Box2d หรือไม่? คำแนะนำใด ๆ ที่ชื่นชมมาก


person vwee    schedule 21.03.2012    source แหล่งที่มา


คำตอบ (2)


Cocos2D ไม่มีการตรวจจับการชนใดๆ สิ่งที่คุณต้องการคือการทดสอบการแยกระหว่างรังสีกับรูปหลายเหลี่ยม นั่นคือสิ่งที่คุณสามารถทำได้ด้วย Box2D หรือ Chipmunk ทั้งสองรวมอยู่ใน Cocos2D (สำหรับ iPhone) Box2D และ Chipmunk อนุญาตให้ใช้ฟิสิกส์ของเกม เช่น แรงโน้มถ่วง ลม การตรวจจับการชน ฯลฯ

หากคุณต้องการทำการตรวจจับ 'เรียงลำดับ' ใน Cocos2D ธรรมดา ฉันขอแนะนำให้ใช้ฟังก์ชัน CGRectContainsCGRect หรือ CGRectContainsCGPoint หรือ CGRectIntersectsCGRrect เพื่อทำเช่นเดียวกัน สิ่งนี้อาจช่วยให้คุณบรรลุสิ่งที่คุณต้องการ แต่มันจะไม่ดีเท่าการใช้ฟิสิกส์ของเกม Box2D หรือ Chipmunk

person LearnCocos2D    schedule 22.03.2012
comment
ฉันเดาว่าฉันไม่มีทางเลือกนอกจากต้องย้ายไปที่ Box2d แล้ว ขอบคุณสำหรับคำแนะนำ. - person vwee; 24.03.2012

cocos2d มีการตรวจจับการชนกันแบบง่ายๆ เช่น CCRect::rectContainsPoint(ใน cocos2d-x) หรือ rectIntersectsRect

หากรูปหลายเหลี่ยมของคุณเป็นรูปสี่เหลี่ยมผืนผ้า คุณสามารถตรวจจับได้โดยการตัดสินว่ามีจุดของเส้นอยู่ในรูปสี่เหลี่ยมผืนผ้านั้นหรือไม่

person zhangxaochen    schedule 22.09.2012