เริ่มต้นกับแรงดึงดูด : gravity II
posted on 25 Dec 2007 16:59 by xnanoob in physic, Tutorials
มามั่วต่อกับ FarseerPhysics การใช้ component ของเค้าก้อง่ายดีนะ
แต่ยังไม่ค่อยเข้าใจ method ต่างๆ และการเรียกใช้
จากตัวอย่างที่แล้ว บอลจะตกลงมาและก้อตกไปเลย
ตัวอย่างนี้เลยจะเป็นการสร้างให้ของนั้นมีตัวตนและตรวจสอบการชนได้
| box1AbsBody = BodyFactory.Instance.CreateRectangleBody(physicssim, 200, 100,100);
//set the bodies position and make it static so it won't move. box1AbsBody.Position = new Vector2(0, 400);box1AbsBody.IsStatic = true; |
ข้างบนนี้จะเป็นการสร้าง Body (ตัวของกล่องใหญ่ซ้ายมือ)
-
box1AbsBody.IsStatic = true; // บรรทัดนี้เพื่อไม่ให้กล่องมีผลต่อแรงดึงดูด
-
กล่องมีขนาด 100x200
-
วางไว้ที่ 0,400
-
ยังไม่ค่อยเข้าใจเรื่องมวลเลยอะค่ะ
| //create the geometry for box 1 box1Geom = GeomFactory.Instance.CreateRectangleGeom(physicssim,box1AbsBody, 200, 100);
box1Geom.CollisionResponseEnabled = true; |
ดูๆ ไป concept ก้อจะคล้ายการตรวจสอบการชนแบบปกติโดยใช้ bounding box หรือแบบต่างๆ
คือ image ก้อ image vector ก้อ vector ส่วน bounding ก้อ bounding แยกกันไป
เพราะฉะนั้นการใช้ FaeseerPhysics ก้อคล้ายๆ กานอะค่ะ
| ballBody1 = BodyFactory.Instance.CreateCircleBody(physicssim,6,1); ballBody1.Position = new Vector2(0, 0);
//create the geometry for box 2 ballGeom = GeomFactory.Instance.CreateCircleGeom(physicssim, ballBody1,6,1);ballGeom.CollisionResponseEnabled = true; |
ต่อมาก้อมากำหนด collision ของลูกบอล
โดยในส่วนของ physic ก้อให้มีแรงดึงดูดในแกน X = 3 แกน Y = 200
แกน X นี้คล้ายๆ จะเป็นแรงลมเล็กๆ ให้มันได้ ไม่งั้นบอลจะไม่ขยับเขยื้อนถ้าไม่ได้อยู่กลางอากาศ
|
|
![]() t=1; |
![]() t=2; |
![]() t=3; |
สมมติ t ในเวลาต่างๆ

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













เนียนเลยคับ...เหมือนบอลมันเด้งได้จิงๆ
แต่ช่วงรอบแรกๆดูแล้วไม่ค่อยเป็นธรรมชาติเท่าไร..
ว่าแต่ขยันจังเลยนะฮั๊บ....
#1 By robocon on 2007-12-25 20:24