คำถามติดแท็ก box2d

Box2D เป็นไลบรารีจำลองฟิสิกส์ 2 มิติแบบโอเพนซอร์สสำหรับเกมที่เขียนด้วยภาษา C ++ พร้อมพอร์ตในภาษาต่างๆ

3
ทำให้สิ่งที่ดูรวดเร็วช้า (Box2D)
ฉันกำลังทำงานกับเกมที่คุณควบคุม Trebuchet เพื่อขว้างลูกบอลให้ฝ่ายตรงข้าม มันเหมือนเกมที่เรียกว่า 'Medieval Siege' เมื่อ Trebuchet กำลังแกว่งแขนผู้เล่นต้องยึดช่วงเวลาที่ดีที่สุดเพื่อกดปุ่มและปล่อยลูกบอล จากนั้นลูกบอลจะลอยไปที่มุมสัมผัส ปัญหาของฉันในตอนนี้คือแขน trebuchet แกว่งเร็วเกินไปสำหรับผู้เล่นที่จะคว้าช่วงเวลาที่เหมาะสม ในขณะเดียวกันก็ต้องมีความเร็วอย่างนี้ไม่อย่างนั้นมันก็ไม่สามารถโยนได้ไกลพอ และมีสายเล็ก ๆ ที่เชื่อมต่อลูกบอลและแขน trebuchet ถ้าแขนแกว่งช้าเกินไปลูกบอลก็จะลอยอยู่บนเชือกเมื่อแขนขยับ ฉันแก้ปัญหาด้วยการสลับขนาดก้าวเมื่อใดก็ตามที่แขนแกว่งไปมาฉันเปลี่ยนขนาดก้าวจาก 1/60 เป็น 1/200 และเมื่อผู้เล่นปล่อยลูกบอลมันกลับไปที่ 1/60 วิธีนี้ใช้งานได้ดียกเว้นเกมของฉันมีไว้สำหรับผู้เล่นหลายคนที่มีเครือข่าย ดังนั้นขั้นตอนการเปลี่ยนอาจทำให้เกิดปัญหา อีกวิธีที่ฉันคิดได้คืออนุญาตให้มันแกว่งช้า แต่เมื่อผู้เล่นปล่อยลูกบอลฉันจะเพิ่มความเร็วลงบนลูกบอลในขณะที่ยังคงทิศทางไว้ ฉันไม่ชอบวิธีแก้ปัญหานี้เพราะมันดูปลอมและฉันยังคงมีปัญหาว่าลูกบอลกำลังลอยอยู่บนสายเว้นแต่ว่าฉันจะทำให้สายสั้นมาก .. กรุณาส่องไฟนี้ออกมาขอบคุณ! แก้ไข ขอบคุณสำหรับการป้อนข้อมูลของทุกคนฉันแก้ปัญหาด้วยการแกว่งแขนช้าและเมื่อผู้เล่นปล่อยลูกบอลคว้าความเร็วของบอลและสองครั้ง ดูเหมือนว่าเหมือนกับการเปลี่ยนขนาดขั้นตอน มีอีกสิ่งหนึ่งที่ฉันต้องทำ เนื่องจากแขนแกว่งช้ามากลูกบอลจึงแขวนอยู่ที่ปลายแขนแทนที่จะแกว่ง ฉันแก้ปัญหานี้โดยใช้แรงเท่ากับแรงโน้มถ่วงบนลูกบอลในระหว่างและเฉพาะในช่วงสวิง จากนั้นมันจะไม่แขวนที่นั่นอีกต่อไป แต่จะแกว่งแขนพร้อมกัน คำตอบของ @MrCranky มีรายละเอียดและดูเป็นไปได้ดังนั้นฉันจึงยอมรับ :)

1
การตรวจจับการชนขั้นพื้นฐาน Box2D
ฉันไม่เข้าใจวิธีฟังการชนใน Cocos2D / Box2D บอกว่าฉันมีร่างวงกลมสองวง หนึ่งมีขนาดเล็กมากและอื่น ๆ ที่ค่อนข้างใหญ่ เมื่อวงกลมเล็ก ๆ ชนกันด้วยวงกลมใหญ่ฉันอยากจะทำอะไรสักอย่าง (เล่นเสียง) วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ขณะนี้ฉันกำลังทดลองใช้วิธีทดสอบ TestPoint สิ่งที่ต้องการ: if(largeCircleBody->GetFixtureList()->TestPoint(smallCirclePoint)){ // collision happened... // play sound etc }

2
จะใช้การระเบิดแบบ 2d ซึ่งจะสร้างความเสียหายโดยคำนึงถึงการครอบคลุมและระยะทางอย่างไร
ฉันจะสร้างการระเบิด 2D ในลักษณะที่จะสร้างความเสียหายให้กับตัวละครที่ซ่อนอยู่ด้านหลังลังหรือฝาครอบอื่น ๆ ได้อย่างไร ความเสียหายในอุดมคติจะขึ้นอยู่กับความแข็งแรงของฝาครอบ (เช่นผนังโลหะจะป้องกันได้ดีกว่าลังไม้) ความเสียหายในอุดมคติจะลดลงตามระยะทางเช่นกัน ฉันจะใช้พอร์ตของเครื่องยนต์ฟิสิกส์ Box2D - Farseer ขอบคุณ.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.