コード例 #1
0
ファイル: Bullet.cs プロジェクト: psykano/STFU-xna
        // 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);
            }
        }
コード例 #2
0
 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;
 }
コード例 #3
0
 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);
 }