ccdtest.bmx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. SuperStrict
  2. Framework Physics.Box2d
  3. Import SDL.SDLRenderMax2D
  4. Import "test.bmx"
  5. Graphics 800,600, 0
  6. SetBlend alphablend
  7. Run(New CCDTest.Create(), New TSettings)
  8. Type CCDTest Extends Test
  9. Method Create:CCDTest()
  10. Init(15, 15)
  11. Const k_restitution:Float = 1.4
  12. Local bd:b2BodyDef = New b2BodyDef
  13. bd.SetPosition(New b2Vec2.Create(0.0, 20.0))
  14. Local body:b2Body = m_world.CreateBody(bd)
  15. Local sd:b2PolygonDef = New b2PolygonDef
  16. sd.SetDensity(0.0)
  17. sd.SetRestitution(k_restitution)
  18. sd.SetAsOrientedBox(0.1, 10.0, New b2Vec2.Create(-10.0, 0.0), 0.0)
  19. body.CreateShape(sd)
  20. sd.SetAsOrientedBox(0.1, 10.0, New b2Vec2.Create(10.0, 0.0), 0.0)
  21. body.CreateShape(sd)
  22. sd.SetAsOrientedBox(0.1, 10.0, New b2Vec2.Create(0.0, -10.0), 90)
  23. body.CreateShape(sd)
  24. sd.SetAsOrientedBox(0.1, 10.0, New b2Vec2.Create(0.0, 10.0), 270)
  25. body.CreateShape(sd)
  26. Local sd_bottom:b2PolygonDef = New b2PolygonDef
  27. sd_bottom.SetAsBox( 1.5, 0.15 )
  28. sd_bottom.SetDensity(4.0)
  29. Local sd_left:b2PolygonDef = New b2PolygonDef
  30. sd_left.SetAsOrientedBox(0.15, 2.7, New b2Vec2.Create(-1.45, 2.35), 11.4591513)
  31. sd_left.SetDensity(4.0)
  32. Local sd_right:b2PolygonDef = New b2PolygonDef
  33. sd_right.SetAsOrientedBox(0.15, 2.7, New b2Vec2.Create(1.45, 2.35), -11.4591513)
  34. sd_right.SetDensity(4.0)
  35. bd = New b2BodyDef
  36. bd.SetPosition(New b2Vec2.Create(0.0, 15.0))
  37. body = m_world.CreateBody(bd)
  38. body.CreateShape(sd_bottom)
  39. body.CreateShape(sd_left)
  40. body.CreateShape(sd_right)
  41. body.SetMassFromShapes()
  42. Return Self
  43. End Method
  44. End Type