Ejemplo n.º 1
0
 private void OnStay(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB)
 {
     if (playerScript.IsAttacking)
     {
         Animation.Play("Die");
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles collisions.
        /// </summary>
        /// <param name="fixtureA"></param>
        /// <param name="fixtureB"></param>
        /// <param name="contact"></param>
        /// <returns></returns>
        private bool PhysicsBody_OnCollision(FarseerPhysics.Dynamics.Fixture fixtureA,
                                             FarseerPhysics.Dynamics.Fixture fixtureB,
                                             FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            if (Health > 0)
            {
                Health--;
            }
            if (Health > 0)
            {
                _BlockHitSound.Play();
            }
            else
            {
                _BlockDestroySound.Play();
                var state = Playground.State as Gamestates.BreakoutState;
                state.Score++;

                // Random chance of spawning a ball
                if (BreakoutPartyGame.Random.NextDouble() > 0.9)
                {
                    state.SpawnBall();
                }

                PhysicsBody.CollisionCategories = CollisionGroups.None;
                PhysicsBody.IgnoreGravity       = false;
            }

            return(true);
        }
 private bool OnEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     player.Transform.Position = destination;
     player.IsInVents          = toVents;
     Audio.Play("Enter");
     return(true);
 }
Ejemplo n.º 4
0
 private bool OnEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     if (playerScript.IsAttacking)
     {
         Animation.Play("Die");
     }
     return(true);
 }
        private bool OnEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            Renderer.IsEnabled     = false;
            RigidBody.Body.Enabled = false;
            Trigger.Enabled        = false;
            playerScript.HasShank  = true;

            return(true);
        }
 private bool OnEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     if (!playing)
     {
         Audio.PlayMusic();
         playing = true;
     }
     return(true);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Farseer Physics callback.  Called when two AABB's overlap to determine if they should collide.
        /// </summary>
        /// <param name="fixtureA">First fixture involved.</param>
        /// <param name="fixtureB">Second fixture involved.</param>
        /// <returns></returns>
        private bool ContactFilter(Physics.Dynamics.Fixture fixtureA, Physics.Dynamics.Fixture fixtureB)
        {
            // Get Entities from both shapes.
            Entity entA = (Entity)fixtureA.Body.UserData;
            Entity entB = (Entity)fixtureB.Body.UserData;

            // Determine if shapes agree to collide.
            return(entA.ShouldCollide(entB, fixtureA, fixtureB) && entB.ShouldCollide(entA, fixtureB, fixtureA));
        }
Ejemplo n.º 8
0
        private bool OnCollision(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            Debug.WriteLine("Linear velocity: " + Boss.PhysicsBody.LinearVelocity);

            if (Boss.Position().Y > Boss.GetPlayerPosition().Y)
            {
                ImpulseToPlayer();
            }

            return(true);
        }
Ejemplo n.º 9
0
        bool _body_OnCollision(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            Player player = fixtureB.Body.UserData as Player;

            if (player == null)
            {
                return(true);
            }

            if (_isLunging)
            {
                _isLunging = false;
                player.ApplyDamage(_characterType.MainAttackDamage);
            }

            return(true);
        }
Ejemplo n.º 10
0
        private bool PhysicalBody_OnCollision(Physics.Dynamics.Fixture fixtureA, Physics.Dynamics.Fixture fixtureB, Physics.Dynamics.Contacts.Contact contact)
        {
            var userDataA = fixtureA.UserData as Organisms.Physics.IPhysicsUserData;
            var userDataB = fixtureB.UserData as Organisms.Physics.IPhysicsUserData;

            var me    = userDataA.CustomData == this ? fixtureA : (userDataB.CustomData == this ? fixtureB : null);
            var other = me == fixtureA ? fixtureB : (me == fixtureB ? fixtureA : null);

            CollisionEventArgs args;

            if (me != null && other != null)
            {
                args = new CollisionEventArgs(((Organisms.Physics.IPhysicsUserData)me.UserData).CustomData, ((Organisms.Physics.IPhysicsUserData)other.UserData).CustomData, me, other, contact);
                OnCollision(args);

                return(args.Result);
            }

            args = new CollisionEventArgs(null, null, me, other, contact);
            OnCollision(args);

            return(args.Result);
        }
Ejemplo n.º 11
0
        public Entity GetEntityAt(Vector2 position, out Physics.Dynamics.Body body, out Physics.Dynamics.Fixture fixture)
        {
            fixture = PhysicalWorld.TestPoint(position.ToFPVector2());
            body    = null;

            if (fixture == null)
            {
                return(null);
            }

            body = fixture.Body;

            if (body == null)
            {
                return(null);
            }

            if (body.UserData is IPhysicsUserData)
            {
                return(((IPhysicsUserData)body.UserData).CustomData as Entity);
            }

            return(null);
        }
Ejemplo n.º 12
0
 private bool OnEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     Reset();
     DialogueRenderer.Instance.CurrentDialogue = this;
     return(true);
 }
Ejemplo n.º 13
0
 private bool Player_OnCollision(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     hasCollidedWithAnimal = hasCollidedWithAnimal || (fixtureB.Body.UserData as Entity).IsAnimal() || (fixtureA.Body.UserData as Entity).IsAnimal();
     return(true);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Should this entity collide with another entity?  Used for filtering collisions.
 /// Default: Returns false.
 /// </summary>
 /// <param name="entB">Entity that we are trying to collide with.</param>
 /// <returns></returns>
 public virtual bool ShouldCollide(Entity entB, Physics.Dynamics.Fixture fixture, Physics.Dynamics.Fixture entBFixture)
 {
     return(true);
 }
Ejemplo n.º 15
0
 private void OnExit(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB)
 {
     DialogueRenderer.Instance.CurrentDialogue = null;
 }
Ejemplo n.º 16
0
 public override void OnWallCollision(FarseerPhysics.Dynamics.Fixture wall)
 {
     Cancel();
 }
 private bool TriggerEnter(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     return(true);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Handles collisions with this <see cref="Paddle"/>.
 /// </summary>
 /// <param name="fixtureA"></param>
 /// <param name="fixtureB"></param>
 /// <param name="contact"></param>
 /// <returns></returns>
 private bool PhysicsBody_OnCollision(FarseerPhysics.Dynamics.Fixture fixtureA, FarseerPhysics.Dynamics.Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
 {
     _PaddleHitSound.Play();
     return(true);
 }