มาตรวจสอบการชนกัน XNA ( BoundingSphere )
posted on 29 Sep 2007 17:13 by xnanoob in Tutorials
สวัสดีค่ะ มามั่วกันต่อกับ XNA นะค่ะ
วันนี้ลองมาหัดทำการตรวจสอบการชนกันนะค่ะ
(ครั้งก่อนเป็นการตรวจสอบการชนแบบเขียนเองนะค่ะ)
โดยใช้ class BoundingSphere
ปกติ เวลาจะตรวจสอบการชน ก้อต้องทำการตรวจสอบพิกัดต่างๆ
แต่ใน xna มีคลาส สำหรับแก้ปัญหาพวกนี้ได้ โดยใช้คลาสพวก bounding
สำหรับในแบบ สองมิติ สามารถใช้แกน Z เป็นศูนย์ได้
หรือในสามมิติ ก้อได้มั่ง (เพราะยังไม่เคยใช้แบบ สามมิติ แต่คงได้)
ตัวอย่างการใช้งานก้อดังนี้
ตัวอย่าง การใช้งาน
BoundingSphere tmp1 = new BoundingSphere(newVector3(X, Y, 0), 10);
BoundingSphere tmp2 = new BoundingSphere(newVector3(X, Y, 0), 10);
if (tmp1.Intersects(tmp2) == true){
// do some thing .... ทำไรก็ทำไป ตอนเช็คการชน
else {
//.... ถ้าไม่ชน
}
มีพารามิเตอร์สองตัว คือเป็นตำแหน่ง vector3D ในตัวอย่างนี้หนูทำบน 2D เลยให้ แกน Z เป็นศูนย์ และพารามิเตอร์ อีกตัวเป็น รัศมีของของ
new BoundingSphere(new Vector3(pointmove.X, pointmove.Y, 0), 25)
ส่วนตอนชนก็ใช้ method Intersects ดังนี้
if (tmp1.Intersects(tmp2) == true)
ถ้าไงลองเอาไปมั่วต่อกันเองนะค่ะ
ยังมี bounding อีกหลายแบบให้ใช้
ลองดูเอานะค่ะ
จบแระค่ะ ... บายค่ะ
งุงิ งุงิ
edit @ 7 Dec 2007 01:23:00 by xnanoob







