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