ณ จุดนี้แพลตฟอร์มและภาษาการเขียนโปรแกรมไม่สำคัญว่าฉันแค่อยากจะรู้ว่ามีบางสิ่งที่มีอยู่สำหรับเรื่องนี้ ความช่วยเหลือใด ๆ ที่ชื่นชม
ณ จุดนี้แพลตฟอร์มและภาษาการเขียนโปรแกรมไม่สำคัญว่าฉันแค่อยากจะรู้ว่ามีบางสิ่งที่มีอยู่สำหรับเรื่องนี้ ความช่วยเหลือใด ๆ ที่ชื่นชม
คำตอบ:
ดูว่า Q-Games ใช้สำหรับ Pixeljunk Shooter อย่างไร มันเป็นเกม 2d ที่มีฟิสิกส์ของไหลที่เกี่ยวข้อง ฉันไม่แน่ใจว่าพวกเขาใช้เครื่องยนต์ฟิสิกส์พื้นบ้านหรือมิดเดิลแวร์ แต่ข้อมูลอาจจะอยู่ที่ใดที่หนึ่ง
ฉันไม่ได้มองเรื่องนี้ แต่ฉันรู้ว่าเครื่องยนต์ฟิสิกส์เกือบทุกตัวสามารถเลียนแบบความคิดได้ Box2D ฯลฯ
โดยทั่วไปมีอนุภาคที่กระดอนไปรอบ ๆ พื้นผิวและ eachother (เร็วกว่าสำหรับก๊าซ) แต่ยังให้แรงโน้มถ่วงคงที่เช่นเอฟเฟกต์ (ของเหลวจะมีเหมือนกัน แต่ก๊าซบางชนิดที่คุณอาจต้องการเพิ่มขึ้นอย่างช้าๆ)
หากคุณเชื่อมโยงอนุภาคภายนอกเข้าด้วยกันคุณจะได้รับรูปหลายเหลี่ยมที่แสดงถึงมวล
หรือ
หากคุณเพียงแค่วาดพิกเซลหรือกราฟิกอนุภาคเหนือแต่ละอนุภาคคุณสามารถบรรลุเอฟเฟกต์คลาวด์สำหรับมวลแทนได้
ห้องสมุดเดียวที่ฉันจะเกิดขึ้นกับการที่เกี่ยวข้องโดยเฉพาะกับของเหลวเป็นfluidic มันค่อนข้างอัลฟาและมีรุ่นเดียวเท่านั้น Bulletห้องสมุดฟิสิกส์สนับสนุน 'hydrodynamics แบบเรียบ' ซึ่งเป็นเทคนิคที่ใช้สร้างแบบจำลองของเหลว แม้ว่าไลบรารี่จะมุ่งเน้นไปที่ 3D คุณสามารถใช้ข้อ จำกัด กับแกนเดียวเพื่อให้มันทำงานใน 2D
คำแนะนำของฉันก็คือตามที่ฉันได้กล่าวไปแล้วในความคิดเห็นเกี่ยวกับคำตอบอื่น ๆ ที่จะใช้เครื่องยนต์ฟิสิกส์มาตรฐานเช่น Box2D หรือ Chipmunk และใช้วงกลมจำนวนหนึ่งเพื่อสร้างแบบจำลองน้ำ (มีแรงโน้มถ่วง) หรือก๊าซ (ไม่มีแรงโน้มถ่วง) และรวมเข้าด้วยกัน เป็นหนึ่งในน้ำหรือก๊าซร่างกาย คุณสามารถใช้ข้อ จำกัด บางอย่างกับแต่ละวัตถุเพื่อทำให้พวกมัน 'รวมกัน' เพื่อที่คุณจะสามารถจำลองความหนืดได้ ดูวิดีโอนี้เพื่อดูว่าแต่ละส่วนของร่างกาย (โมเดลเป็นสี่เหลี่ยมในวิดีโอ) ทำงานร่วมกันอย่างไร อย่างไรก็ตามเทคนิคที่ใช้ในวิดีโอนี้ไม่เหมือนกับที่กล่าวไว้ในย่อหน้านี้ คุณสามารถใช้วิดีโอเพื่อรับรู้ว่าวงกลมมีปฏิสัมพันธ์กันอย่างไรและพยายามเลียนแบบสิ่งนี้ด้วยข้อ จำกัด ที่มีอยู่ในห้องสมุดฟิสิกส์ที่ใช้
ส่วนที่น่าสนใจเกิดขึ้นเมื่อคุณต้องการรวมหลาย ๆ วงกลมเข้ากับร่างกายของน้ำ ทางออกที่ตรงไปตรงมาที่สุดที่ฉันสามารถทำได้คือวาดวงกลมแต่ละวงเป็นmetaballเพื่อให้ปรากฏเป็นส่วนหนึ่งของร่างกายที่ใหญ่กว่า คุณสามารถค้นหาคณิตศาสตร์และบางตัวอย่างรหัสที่อยู่เบื้องหลังหน่วยงานเหล่านี้ที่นี่
ไม่กี่ปีที่ผ่านมาตั้งแต่คำถามนี้ถูกโพสต์ แต่ฉันเจอเมื่อค้นหาดังนั้นฉันคิดว่าฉันจะอัปเดต
Google เปิดตัว LiquidFun (โอเพ่นซอร์ส) สำหรับระบบ Box2D มันมีข้อ จำกัด บางอย่าง แต่มันเป็นวิธีที่รวดเร็วในการเริ่มต้นกับของเหลวทรายและอนุภาคอื่น ๆ ที่มีประสิทธิภาพที่เหมาะสม
https://github.com/google/liquidfun
PixelJunk มีวิธีการที่ยอดเยี่ยม แต่เป็นห้องสมุดส่วนตัว พวกเขาแบ่งปันรายละเอียดในระดับที่น่าทึ่งในการพูดคุยที่ GCD 2010