Oops! XNA 3D Physics Framework Beta

Rating: No reviews yet
Downloads: 226
Released: Jan 12, 2008
Updated: Jan 12, 2008 by FretboardOfFury
Dev status: -not yet defined by owner-

Recommended Download

Source Code Change Set 14977 (Source Code)
source code, 11456K, uploaded Jan 12, 2008 - 226 downloads

Release Notes

This beta release of the Oops! Framework contains the source code from Change Set 14977.


  • Added VectorRandom class to return random Vector3 and Quaternion values.
  • Reversed parameter order of Matrices for the method MatrixExtension.ConvertBasis33.
  • Added return value version of the MatrixExtension.ConvertBasis33 method.
  • Added easier composite shape support. See "Example 4" and the new RigidBody.CollisionShapes collection property.
  • Fixed issue when committing a collision with no second rigid body. See Collision.CommitOnly.
  • Removed Collision.CommitWithPlane method. A collision with a plane can now be committed through the Collision.Commit or the Collision.CommitOnly methods.
  • Mass property now exists on the CollisionShape class. The Mass property on the RigidBody class represents the total mass of all associated collision shapes.
  • The RigidBody property on the CollisionShape class is now read only and gets auto-assigned when added to a RigidBody via it's CollisionShapes collection.
  • Fixed issue where CollisionShape instances attempt to collide when of the same RigidBody. See CollisionShape.CanCompare method.
  • Fixed offset calculations in the CollisionShape.CalculateInternals method.
  • Modified the CollisionBox, CollisionSphere, CollisionWedge and CollisionTerrain classes due to changes to the RigidBody and CollisionShape classes.
  • Added the IForceGenerator interface for future implementations.
  • Added the CollisionShapes collection property to the RigidBody class to easily associated multiple collision shapes to the same rigid body to create composite shapes.
  • Added the CenterOfMass property to the RigidBody class.
  • Exposed the Force and Torque fields of the RigidBody class.
  • Removed SetMass method of the RigidBody class. Mass should now be set on CollisionShape instances.
  • Removed SetInertiaTensor method of the RigidBody class. The moment of inertia is calculated from associated collision shapes.
  • Rigid bodies now automatically calculate the internals of all associated collision shapes. See the RigidBody.CalculateDerivedData method.
  • Made the CollisionPlane class a first class citizen. It now inherits from CollisionShape.
  • Added a CollisionDetector class used to determine the correct routine necessary to perform the collision between two CollisionShapes.
  • Moved all collision code to specific subclasses of CollisionDetector. See the "CollisionDetectors" folder under the "Physics" folder in the "Oops.Xna.Framework" project.
  • Removed CollisionPlane overloaded version of the Collide method on the ICollisionCallback interface.
  • Removed RigidBody constructor with "owner" property. Set the Tag property after creation.
Game State
  • Removed Oops! GameComponentCollection class and used XNA version for components of game screens.
  • Added IsGamePadButtonsUp, IsGamePadButtonsDown, IsGamePadButtonPressed and IsGamePadButtonReleased method to the IInputService interface and implemented them in the InputComponent class.
Testing Application
  • Modified ExampleScreens due to changes to the RigidBody and CollisionShape classes and the new VectorRandom class.
  • Added new example showcasing composite shapes.
  • Modified the MainMenuScreen due to changes to the RigidBody and CollisionShape classes and the new VectorRandom class.
  • Added REFERENCE_COLLISION compiler directive to the "Release" configuration of XBOX projects.

Questions, requests and suggestions are definitely welcome. Add a work item or start a discussion!

Reviews for this release

No reviews yet for this release.