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); }