/// <summary> /// Construye un rectangulo 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="width">Ancho del rectangulo</param> /// <param name="height">Alto del rectangulo</param> /// <param name="startPosition">Coordenadas de inicio del body</param> /// <param name="startCenter">Determina si las coordenadas de inicio se refieren /// al primer punto del body o al centro de este</param> /// <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>Rectangulo generado</returns> public static Box CreateRectangle(string id, IEntity owner, bool isSolid, bool relativeToFacing, float width, float height, Vector2 startPosition, bool startCenter, float layer, Color colorTag) { if (startCenter) { startPosition.X -= width / 2; startPosition.Y -= height / 2; } Box box = new Box(id, startPosition.X, startPosition.Y, width, height, owner, isSolid); box.Layer = layer; box.ColorTag = colorTag; if (relativeToFacing) { bool facingRight = owner.getState(EntityState.FacingRight); if (facingRight != true) { box.MirrorHorizontal(owner.getVectorProperty(EntityProperty.Position)); } } return box; }
/// <summary> /// Construye un rectangulo 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="width">Ancho del rectangulo</param> /// <param name="height">Alto del rectangulo</param> /// <returns>Rectangulo generado</returns> public static Box CreateRectangle(string id, IEntity owner, bool isSolid, bool relativeToFacing, float width, float height) { Box box = new Box(id, 0, 0, width, height, owner, isSolid); if (relativeToFacing) { bool facingRight = owner.getState(EntityState.FacingRight); if (facingRight != true) { box.MirrorHorizontal(owner.getVectorProperty(EntityProperty.Position)); } } return box; }