public override void Update(GameTime gameTime) { //Get some input UpdateInput(); Vector3 upwardOffest = MathConverter.Convert(physicsObject.WorldTransform.Up); Game1.CameraPosition = MathConverter.Convert(physicsObject.Position) + upwardOffest; Game1.CameraDirection = MathConverter.Convert(physicsObject.Position) + upwardOffest + MathConverter.Convert(physicsObject.WorldTransform.Forward); Game1.CameraUp = MathConverter.Convert(physicsObject.WorldTransform.Up); //Game1.CameraDirection = MathConverter.Convert(physicsObject.WorldTransform.Forward); //Add Velocity to the current position for both the physics object and the model //modelPosition += modelVelocity; //physicsObject.Position += MathConverter.Convert(modelVelocity); //bleed off velocity over time from both the model and the physics object //modelVelocity *= 0.95f; //physicsObject.LinearMomentum *= 0.95f; }
public override void Draw(GameTime gameTime) { foreach (var mesh in model.Meshes) { foreach (BasicEffect effect in mesh.Effects) { effect.EnableDefaultLighting(); effect.DirectionalLight0.DiffuseColor = new Vector3(10, 10, 10); effect.DirectionalLight1.DiffuseColor = new Vector3(10, 10, 10); effect.DirectionalLight2.DiffuseColor = new Vector3(10, 10, 10); effect.PreferPerPixelLighting = true; //effect.Alpha = 0.3f; effect.World = MathConverter.Convert(physicsObject.WorldTransform); effect.View = Matrix.CreateLookAt(Game1.CameraPosition, Game1.CameraDirection, Game1.CameraUp); float aspectRatio = Game.GraphicsDevice.Viewport.AspectRatio; float fieldOfView = Microsoft.Xna.Framework.MathHelper.PiOver4; float nearClipPlane = 0.3f; float farClipPlane = 400f; effect.Projection = Matrix.CreatePerspectiveFieldOfView(fieldOfView, aspectRatio, nearClipPlane, farClipPlane); } mesh.Draw(); } base.Draw(gameTime); }
public Asteroid(Game game, Vector3 pos, float mass, Vector3 linMomentum, Vector3 angMomentum) : this(game, pos, mass, linMomentum) { physicsObject.AngularMomentum = MathConverter.Convert(angMomentum); }
public Asteroid(Game game, Vector3 pos, float mass, Vector3 linMomentum) : this(game, pos, mass) { physicsObject.LinearMomentum = MathConverter.Convert(linMomentum); }
public Fighter(Game game, Vector3 pos, float mass, Vector3 linMomentum) : this(game, pos, mass) { physicsObject.LinearMomentum = MathConverter.Convert(linMomentum); //modelVelocity = linMomentum / 50; }