예제 #1
0
        /// <summary>
        /// Init the physics world.
        /// </summary>
        public PhysicsWorld()
        {
            // init components
            _config     = new BulletSharp.DefaultCollisionConfiguration();
            _dispatcher = new BulletSharp.CollisionDispatcher(_config);
            _broadphase = new BulletSharp.DbvtBroadphase();
            _solver     = new BulletSharp.SequentialImpulseConstraintSolver();

            // create world instance
            _world = new BulletSharp.DiscreteDynamicsWorld(
                dispatcher: _dispatcher,
                pairCache: _broadphase,
                constraintSolver: _solver,
                collisionConfiguration: _config);

            // for better performance
            _world.ForceUpdateAllAabbs = false;

            // create debug renderer
            _debugDraw = new PhysicsDebugDraw(Graphics.GraphicsManager.GraphicsDevice);

            // set default gravity
            SetGravity(Vector3.Down * 9.8f);
        }
예제 #2
0
 /// <summary>
 /// Destroy the physical world.
 /// </summary>
 public void Destroy()
 {
     _world = null;
 }