Exemple #1
0
        public bool IsCollided(Player player, Room room)
        {
            var intersectionDeter = new IntersectionDeterminant();
            var border            = room.Border;
            var doors             = room.GetAllDoors();

            foreach (var t in doors)
            {
                if (IsCollided(player, t) && !t.IsLocked)
                {
                    return(false);
                }
            }

            if (intersectionDeter.IsIntersected(player.Form,
                                                new RectangleF(room.Form.Left, room.Form.Top, border.Width, room.Form.Height)))
            {
                return(true);
            }

            if (intersectionDeter.IsIntersected(player.Form,
                                                new RectangleF(room.Form.Left, room.Form.Top, room.Form.Width, -border.Height)))
            {
                return(true);
            }

            if (intersectionDeter.IsIntersected(player.Form,
                                                new RectangleF(room.Form.Right - border.Width, room.Form.Top, border.Width, room.Form.Height)))
            {
                return(true);
            }

            if (intersectionDeter.IsIntersected(player.Form,
                                                new RectangleF(room.Form.Left, room.Form.Bottom + border.Height, room.Form.Width, -border.Height)))
            {
                return(true);
            }

            return(false);
        }