สวัสดีค่ะ มามั่วกันต่อกับ 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

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry