// Constructor public Bullet(World world, Vector2 position, float width, float height, float distance, float rotation, float density, bool bulletGoneOnCollision) : base(world) { this.initialPosition = position; this.Width = ConvertUnits.ToSimUnits(width); this.Height = ConvertUnits.ToSimUnits(height); this.distance = distance; this.Done = false; doneTimer = new Timer(); // Make the bullet in the physics world this.physicsObj = new PhysicsObject(this, this.world, position, width, height, density); this.physicsObj.body.IgnoreGravity = true; this.physicsObj.body.Rotation = rotation; this.physicsObj.body.FixedRotation = true; // We want the bullet to disappear once it hits something if (bulletGoneOnCollision) { this.physicsObj.body.OnCollision += new OnCollisionEventHandler(onCollision); } else { this.physicsObj.body.OnCollision += new OnCollisionEventHandler(onSilentCollision); } }
public SpringPhysicsObject(World world, PhysicsObject physObA, PhysicsObject physObB, Vector2 relativeJointPosition, float springSoftness, float springBiasFactor) : base(world, physObA, physObB, relativeJointPosition) { springJoint = JointFactory.CreateAngleJoint(world, physObA.fixture.Body, physObB.fixture.Body); springJoint.TargetAngle = 0; springJoint.Softness = springSoftness; springJoint.BiasFactor = springBiasFactor; }
public CompositePhysicsObject(World world, PhysicsObject physObA, PhysicsObject physObB, Vector2 relativeJointPosition) { this.physObA = physObA; this.physObB = physObB; revJoint = JointFactory.CreateRevoluteJoint(world, physObA.fixture.Body, physObB.fixture.Body, ConvertUnits.ToSimUnits(relativeJointPosition)); physObA.fixture.IgnoreCollisionWith(physObB.fixture); physObB.fixture.IgnoreCollisionWith(physObA.fixture); }