รับระบบคลาวด์ 2D พิกเซลเพื่อติดตามเมาส์


10

ฉันกำลังทำงานกับเกม 2D ที่พยายามหา "ก้อนเมฆ" ของก้อนหรือแผ่นดิสก์เล็ก ๆ สองสามร้อยก้อนเพื่อติดตามเคอร์เซอร์เมาส์โดยไม่ทับซ้อนกัน

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

มีวิธีง่ายๆในการเพิ่มประสิทธิภาพของเครื่องยนต์สำหรับสิ่งนี้หรือไม่? ถ้าไม่ฉันจะดีกว่าถ้าปิดเครื่องยนต์แล้วเขียนสิ่งที่ฉันเป็นของตัวเอง? (จับที่ฟางที่นี่ แต่ :) มีแหล่งข้อมูลหรือตัวอย่างที่ดีเกี่ยวกับวิธีการทำสิ่งนี้หรือไม่?

คำตอบ:


13

ใช่ใช้เครื่องมือทางฟิสิกส์เพื่อที่จะเป็น overkill เล็กน้อย ฉันขอแนะนำให้คุณใช้อัลกอริทึม flocking พื้นฐานของการที่:

  • การแยก: คัดท้ายเพื่อหลีกเลี่ยงการรวมฝูงเพื่อนในชุมชน

  • การจัดตำแหน่ง: คัดท้ายไปยังส่วนหัวเฉลี่ยของฝูงแกะในท้องถิ่น

  • การติดต่อกัน: คัดท้ายเพื่อย้ายไปยังตำแหน่งเฉลี่ยของฝูงเพื่อนในท้องถิ่น

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


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