예제 #1
0
        /// <summary>
        /// Проверка пересечения одной сущности с другой
        /// </summary>
        public bool HasCollided(Entity s)
        {
            List <Vector2f> shipVertices = s.GetVertices();            //Точки корабля
            Vector2f        c            = shape.Position;

            for (int i = 0; i < shipVertices.Count; i++)
            {
                for (int j = i; j < shipVertices.Count; j++)
                {
                    if (i != j)
                    {
                        if (VectorExtension.Intersect(shipVertices[i], shipVertices[j], c, size))
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
예제 #2
0
        /// <summary>
        /// Проверка уничтожен ли объект оружием + нанесение урона
        /// </summary>
        public bool HasDamaged(Shot proj)
        {
            List <Vector2f> shipVertices = proj.GetVertices();            //Точки снаряда
            Vector2f        c            = shape.Position;

            for (int i = 0; i < shipVertices.Count; i++)
            {
                for (int j = i; j < shipVertices.Count; j++)
                {
                    if (i != j)
                    {
                        if (VectorExtension.Intersect(shipVertices[i], shipVertices[j], c, size))
                        {
                            Health -= proj.Hit();
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }