Esempio n. 1
0
            public void CheckForCollision(ObjectBase objectA, ObjectBase objectB)
            {
                Rectangle a = objectA.CollisionRectangle;
                Rectangle b = objectB.CollisionRectangle;

                int collisionWidth = 0;
                int collisionHeight = 0;
                int collisionX = 0;
                int collisionY = 0;

                if (a.Left < b.Left)
                {
                    collisionWidth = GetCollisionWidth(a, b);
                    collisionX = b.Left;
                }
                else
                {
                    collisionWidth = GetCollisionWidth(b, a);
                    collisionX = a.Left;
                }

                if (a.Top < b.Top)
                {
                    collisionHeight = GetCollisionHeight(a, b);
                    collisionY = b.Top;
                }
                else
                {
                    collisionHeight = GetCollisionHeight(b, a);
                    collisionY = a.Top;
                }

                if (collisionWidth < 0 || collisionHeight < 0)
                    return;

                Rectangle collision = new Rectangle(collisionX, collisionY, collisionWidth, collisionHeight);
                objectA.Collide(objectB, collision);
            }