Пример #1
0
        /// <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;
        }
Пример #2
0
        /// <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;
        }