Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        /// <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;
        }