วิธีการจำลองการตกของขนนกใน box2d?


10

ฉันกำลังทำงานกับ AndEngine พร้อมกับส่วนขยาย Box2d แต่คำตอบทั่วไปหรือแนวคิดรวบยอดจะได้รับการชื่นชมเช่นกัน

ฉันมีวัตถุคล้ายขนนกในโลกมุมมองสองมิติที่ฉันต้องการเป็นส่วนหนึ่งของการจำลองทางฟิสิกส์ ฉันกำลังใช้การทำให้หมาด ๆ เชิงเส้นเพื่อให้ "ขน" ร่วงลงอย่างช้าๆ นี่อาจไม่ใช่ความคิดที่ดีบางทีฉันควรจะบังคับใช้ในการอัปเดตแต่ละครั้ง แต่อย่างไรก็ตามมันใช้งานได้และทำให้วัตถุดู "เบา" และรู้สึกเหมือนมีอากาศที่มีความต้านทาน

ตอนนี้ฉันจะทำให้วัตถุมีลักษณะเหมือนขนนกที่ตกลงมาในอากาศได้อย่างไร

โดยเฉพาะฉันกำลังมองหาวัตถุสองประเภท: ลองด้วยความหนาแน่นต่ำซึ่งควรเลื่อนลงในการเคลื่อนไหวที่แกว่งช้าและวัตถุสี่เหลี่ยมจัตุรัสซึ่งจะเปลี่ยนวิถีแบบสุ่ม มันจะดีถ้านี่อาจเป็นการจำลองสถานการณ์และความยาวจะเป็นพารามิเตอร์ - ยิ่งวัตถุยาวขึ้นก็ยิ่งแกว่งมากขึ้นเท่านั้น ตอนนี้ฉันต้องการจำลองขนนกใบไม้และเกล็ดหิมะในโลกการ์ตูน

เส้นทางของวัตถุที่ตกลงมา


2
แล้วภาพหน้าจอหรือภาพร่างแนวคิดหรืออะไรแบบนั้น ท้ายที่สุดมีสิ่งต่าง ๆ มากมายที่คุณสามารถพิจารณาขนนกและฉันจะบอกว่าส่วนใหญ่จะทำงานแตกต่างกันไปตามสถานการณ์ของคุณ
Mario

เพิ่มข้อมูลและรูปภาพเพิ่มเติม
MartinTeeVarga

คำตอบ:


6

เหมือนเชื่อมโยงไปถึงดวงจันทร์คุณควรปลอม ระบบออโตโรเตชั่นแบบชักนำให้เกิดความสั่นสะเทือนของฟิสิกส์กระพือปีกเกลือกกลิ้งและกระแสน้ำวนนั้นมีความซับซ้อน มีเอกสารเกี่ยวกับการจำลองผลกระทบนี้และพวกเขาทำผลิตบางส่วนที่น่ารักภาพเคลื่อนไหว Java

แต่ฉันจะไปไกลกว่านี้ในร้านขายอุปกรณ์ของคุณและทำบางสิ่งเช่นคลื่นไซน์ที่กำลังเติบโตเพื่อเคลื่อนไหวการเคลื่อนไหว

ป้อนคำอธิบายรูปภาพที่นี่

เห็นได้ชัดว่าคุณต้องการปรับแต่งค่าเริ่มต้นอัตราการเพิ่มขึ้นของความกว้างและความถี่ที่เป็นอิสระจนกว่าคุณจะได้สิ่งที่ใกล้เคียงกับสิ่งที่คุณต้องการ คุณต้องการให้มีการสุ่มให้น่าสนใจ นอกจากนี้ตามตัวอย่างของคุณวัตถุที่มีแสงมากซึ่งมีพื้นที่ผิวสูงจริง ๆ อาจขึ้นใกล้กับขอบของคลื่น ดังนั้นคลื่นที่อยู่เหนือแอมพลิจูดบางอย่างควรเริ่มคำนึงถึงมูลค่าการกวาดด้วยค่าสูงสุดเล็ก ๆ

เมื่อวัตถุมีมวลน้อยลงและมีพื้นที่ผิวมากเท่าไหร่ก็จะยิ่งเพิ่มความกว้างและความถี่ของคลื่นไซน์มากขึ้นเท่านั้น มวลที่มากขึ้นและพื้นที่ผิวที่น้อยลงจะส่งผลให้แอมพลิจูดและความถี่ลดลง


3
** ผู้สมรู้ร่วมคิด **
Mikolaj Marcisz

ตกลงดังนั้นฉันสามารถมีสองฟังก์ชั่นการเติบโตของคลื่นไซน์ที่จะควบคุมการเคลื่อนที่ในแนวนอนจากนั้นฟังก์ชั่นบางอย่างที่จะควบคุมการเคลื่อนที่ในแนวดิ่งและอาจขึ้นอยู่กับว่าวัตถุอยู่ห่างจากกึ่งกลางมากแค่ไหน ส่งมันกลับมา ... ถ้าฉันคิดว่าฟังก์ชั่นรวมที่จะให้แรงฉันจะใช้แรงได้อย่างไร? ในแต่ละเห็บของเครื่องยนต์เล็กน้อยขึ้นอยู่กับเวลาที่ผ่านไป? ก่อนหน้านี้ฉันไม่ได้ทำงานกับ box2d จริงๆ
MartinTeeVarga

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