/// <summary> /// Construye un poligono según las opciones dadas /// </summary> /// <param name="id">Id del body</param> /// <param name="owner">Owner del body</param> /// <param name="isSolid">Si el body es sólido</param> /// <param name="relativeToFacing">Determina si se debe tomar en cuenta la dirección /// a la que está mirando la entidad para posicionar el body /// relativo a esa dirección</param> /// <param name="polygonPoints">Coordenadas de cada punto del poligono</param> /// <param name="startPosition">Coordenadas de inicio del body</param> /// <param name="startCenter">Determina si las coordenadas de inicio se refieren /// al punto de inicio desde donde se crea el body o al centro del mismo</param> /// <returns>Poligono generado</returns> /// <param name="layer">Capa de colisión donde se encontrará el body</param> /// <param name="colorTag">Tag de color especifico para responses que solo se activen ante dicho Tag</param> /// <returns>Poligono generado</returns> public static Polygon CreatePolygon(string id, IEntity owner, bool isSolid, bool relativeToFacing, List<Vector2> polygonPoints, Vector2 startPosition, bool startCenter, float layer, Color colorTag) { Polygon polygon = new Polygon(id, polygonPoints, owner, isSolid, startPosition); polygon.Layer = layer; polygon.ColorTag = colorTag; if (startCenter) { polygon.Offset(startPosition.X - polygon.Center.X, startPosition.Y - polygon.Center.Y); } if (relativeToFacing) { bool facingRight = owner.getState(EntityState.FacingRight); if (facingRight != true) { polygon.MirrorHorizontal(owner.getVectorProperty(EntityProperty.Position)); } } return polygon; }
/// <summary> /// Construye un poligono según las opciones dadas /// </summary> /// <param name="id">Id del body</param> /// <param name="owner">Owner del body</param> /// <param name="isSolid">Si el body es sólido</param> /// <param name="relativeToFacing">Determina si se debe tomar en cuenta la dirección /// a la que está mirando la entidad para posicionar el body /// relativo a esa dirección</param> /// <param name="polygonPoints">Coordenadas de cada punto del poligono</param> /// <returns>Poligono generado</returns> public static Polygon CreatePolygon(string id, IEntity owner, bool isSolid, bool relativeToFacing, List<Vector2> polygonPoints) { Polygon polygon = new Polygon(id, polygonPoints, owner, isSolid); if (relativeToFacing) { bool facingRight = owner.getState(EntityState.FacingRight); if (facingRight != true) { polygon.MirrorHorizontal(owner.getVectorProperty(EntityProperty.Position)); } } return polygon; }