Example #1
0
        private static Vector2 LeftToRight(
            Vector2 locationPos,
            Vector2 originOffset,
            PartExtents dims,
            List <Vector2> result,
            OriginPositionEnum originPosition,
            PartExtents partNextDims,
            int spacing)
        {
            locationPos += new Vector2(-originOffset.X, -originOffset.Y);
            result.Add(locationPos);
            locationPos += new Vector2(originOffset.X, originOffset.Y);

            if (originPosition == OriginPositionEnum.Center)
            {
                //move forward by 1/2 this ones width and 1/2 of the next ones width
                locationPos += new Vector2(dims.Width / 2, 0);
                if (partNextDims != null)
                {
                    locationPos += new Vector2(partNextDims.Width / 2, 0);
                }
            }
            else
            {
                locationPos += new Vector2(dims.Width, 0);
            }

            locationPos += Utils.Right(spacing);

            return(locationPos);
        }
Example #2
0
        public static Vector2 CalcOffsetForOrigin(PatternPart part, OriginPositionEnum originPosition)
        {
            switch (originPosition)
            {
            default:
            case OriginPositionEnum.LeftBottom:
            {
                PartExtents dims = CalcPartExtents(part);
                return(new Vector2(dims.MinX, dims.MaxY));
            }

            case OriginPositionEnum.LeftTop:
            {
                PartExtents dims = CalcPartExtents(part);
                return(new Vector2(dims.MinX, dims.MinY));
            }

            case OriginPositionEnum.Center:
            {
                PartExtents dims = CalcPartExtents(part);
                float       xOff = dims.MinX + ((dims.MaxX - dims.MinX) / 2);
                float       yOff = dims.MinY + ((dims.MaxY - dims.MinY) / 2);
                return(new Vector2(xOff, yOff));
            }
            }
        }
Example #3
0
        public static void UpdateOrigin(GameObject go, Texture2D sprite, OriginPositionEnum originPositionEnum)
        {
            // --- Top ---

            // top left
            if (OriginPositionEnum.TopLeft == originPositionEnum)
            {
                go.Transform.Origin = new Vector2(0, 0);
            }
            // top mid
            else if (OriginPositionEnum.TopMid == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width / 2f, 0);
            }
            // top rigth
            else if (OriginPositionEnum.TopRight == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width, 0);
            }

            // --- Mid ---

            // mid left
            else if (OriginPositionEnum.MidLeft == originPositionEnum)
            {
                go.Transform.Origin = new Vector2(0, (float)sprite.Height / 2f);
            }
            // mid
            else if (OriginPositionEnum.Mid == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width / 2f, (float)sprite.Height / 2f);
            }
            // mid rigth
            else if (OriginPositionEnum.MidRight == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width, (float)sprite.Height / 2f);
            }

            // --- Bottom ---

            // bottom left
            else if (OriginPositionEnum.BottomLeft == originPositionEnum)
            {
                go.Transform.Origin = new Vector2(0, (float)sprite.Height);
            }
            // bottom mid
            else if (OriginPositionEnum.BottomMid == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width / 2f, (float)sprite.Height);
            }
            // bottom rigth
            else if (OriginPositionEnum.BottomRight == originPositionEnum)
            {
                go.Transform.Origin = new Vector2((float)sprite.Width, (float)sprite.Height);
            }

            //Console.WriteLine("Error: in |Class: Helper|Method: UpdateOrigin| dint work as it neeed to");
            //go.Transform.Origin = new Vector2(0,0);
        }
Example #4
0
 public TowerProjectile(Unit _mytarget, Texture2D _sprite, Vector2 _position, Vector2 _scale, float _layerDepth,
                        OriginPositionEnum _originPositionEnum, float _speed, int _damget)
 {
     this.myTarget           = _mytarget;
     this.sprite             = _sprite;
     this.Transform.Position = _position;
     this.Transform.Scale    = _scale;
     this.Transform.Scale    = _scale;
     this.layerDepth         = _layerDepth;
     this.OriginPositionEnum = _originPositionEnum;
     this.speed   = _speed;
     this.damaget = _damget;
 }
Example #5
0
        private static Vector2 TopToBottom(
            Vector2 locationPos,
            Vector2 originOffset,
            PartExtents dims,
            List <Vector2> result,
            OriginPositionEnum originPosition,
            PartExtents partNextDims,
            int spacing)
        {
            locationPos += new Vector2(-originOffset.X, -originOffset.Y);
            result.Add(locationPos);
            locationPos += new Vector2(originOffset.X, originOffset.Y);

            if (originPosition == OriginPositionEnum.Center)
            {
                //move forward by 1/2 this ones width and 1/2 of the next ones width
                locationPos += new Vector2(0, dims.Height / 2);
                if (partNextDims != null)
                {
                    locationPos += new Vector2(0, partNextDims.Height / 2);
                }
            }
            else if (originPosition == OriginPositionEnum.LeftBottom)
            {
                if (partNextDims != null)
                {
                    locationPos += new Vector2(0, partNextDims.Height);
                }
            }
            else
            {
                locationPos += new Vector2(0, dims.Height);
            }

            locationPos += Utils.Down(spacing);

            return(locationPos);
        }
Example #6
0
        public static List <Vector2> CalcLayout(Pattern pattern, OriginPositionEnum partOriginPosition, Vector2 padding)
        {
            List <Vector2> result      = new List <Vector2>();
            Vector2        locationPos = new Vector2();

            for (int i = 0; i < pattern.Parts.Count; i++)
            {
                PatternPart part         = pattern.Parts[i];
                PartExtents extents      = PartExtents.CalcPartExtents(part);
                Vector2     pageSize     = new Vector2(extents.Width, extents.Height);
                Vector2     originOffset = PartExtents.CalcOffsetForOrigin(part, partOriginPosition);

                switch (partOriginPosition)
                {
                default:
                case OriginPositionEnum.LeftTop:
                    locationPos += new Vector2(padding.X, padding.Y);
                    locationPos  = PlacePart(locationPos, originOffset, result);
                    locationPos -= new Vector2(padding.X, padding.Y);
                    break;

                case OriginPositionEnum.LeftBottom:
                    locationPos += new Vector2(padding.X, pageSize.Y - padding.Y);
                    locationPos  = PlacePart(locationPos, originOffset, result);
                    locationPos -= new Vector2(padding.X, pageSize.Y - padding.Y);
                    break;

                case OriginPositionEnum.Center:
                    locationPos += new Vector2((pageSize.X + padding.X) / 2, (pageSize.Y + padding.Y) / 2);
                    locationPos  = PlacePart(locationPos, originOffset, result);
                    locationPos -= new Vector2((pageSize.X + padding.X) / 2, (pageSize.Y + padding.Y) / 2);
                    break;
                }
            }
            return(result);
        }
Example #7
0
 public Jonathan_Tower(Texture2D _sprite, Vector2 _position, Vector2 _scale, float _layerDepth, OriginPositionEnum _origin, int _tileSize, int _towerCost) : base(_sprite, _position, _scale, _layerDepth, _origin, _tileSize, _towerCost)
 {
     TowerStat();
 }
Example #8
0
        // Null
        #endregion

        #region Properties
        // Null
        #endregion

        #region Constructor
        public GuiImagePanel(Texture2D _sprite, Vector2 _position, Vector2 _scale, float _layerDepth, OriginPositionEnum _originPositionEnum)
        {
            // Button
            this.sprite             = _sprite;
            this.transform.Position = _position;
            this.transform.Scale    = _scale;
            this.layerDepth         = _layerDepth;
            this.originPositionEnum = _originPositionEnum;
        }
Example #9
0
        public static void UpdateOriginText(string text, Rectangle rectangle, SpriteFont spriteFont, Vector2 Scale, OriginPositionEnum originPositionEnum, ref Vector2 newPositon)
        {
            // --- Top ---

            // top left
            if (OriginPositionEnum.TopLeft == originPositionEnum)
            {
                var x = rectangle.X;
                var y = rectangle.Y;
                newPositon = new Vector2(x, y);
            }
            // top mid
            else if (OriginPositionEnum.TopMid == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 2)) - (spriteFont.MeasureString(text).X / 2) * Scale.X;
                var y = rectangle.Y;
                newPositon = new Vector2(x, y);
            }
            // top rigth
            else if (OriginPositionEnum.TopRight == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 1)) - (spriteFont.MeasureString(text).X / 1) * Scale.X;
                var y = rectangle.Y;
                newPositon = new Vector2(x, y);
            }

            // --- Mid ---

            // mid left
            else if (OriginPositionEnum.MidLeft == originPositionEnum)
            {
                var x = rectangle.X;
                var y = (rectangle.Y + (rectangle.Height / 2)) - (spriteFont.MeasureString(text).Y / 2) * Scale.Y;
                newPositon = new Vector2(x, y);
            }
            // mid
            else if (OriginPositionEnum.Mid == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 2)) - (spriteFont.MeasureString(text).X / 2) * Scale.X;
                var y = (rectangle.Y + (rectangle.Height / 2)) - (spriteFont.MeasureString(text).Y / 2) * Scale.Y;
                newPositon = new Vector2(x, y);
            }
            // mid rigth
            else if (OriginPositionEnum.MidRight == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 1)) - (spriteFont.MeasureString(text).X / 1) * Scale.X;
                var y = (rectangle.Y + (rectangle.Height / 2)) - (spriteFont.MeasureString(text).Y / 2) * Scale.Y;
                newPositon = new Vector2(x, y);
            }

            // --- Bottom ---

            // bottom left
            else if (OriginPositionEnum.BottomLeft == originPositionEnum)
            {
                var x = rectangle.X;
                var y = (rectangle.Y + (rectangle.Height / 1)) - (spriteFont.MeasureString(text).Y / 1) * Scale.Y;
                newPositon = new Vector2(x, y);
            }
            // bottom mid
            else if (OriginPositionEnum.BottomMid == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 2)) - (spriteFont.MeasureString(text).X / 2) * Scale.X;
                var y = (rectangle.Y + (rectangle.Height / 1)) - (spriteFont.MeasureString(text).Y / 2) * Scale.Y;
                newPositon = new Vector2(x, y);
            }
            // bottom rigth
            else if (OriginPositionEnum.BottomRight == originPositionEnum)
            {
                var x = (rectangle.X + (rectangle.Width / 1)) - (spriteFont.MeasureString(text).X / 1) * Scale.X;
                var y = (rectangle.Y + (rectangle.Height / 1)) - (spriteFont.MeasureString(text).Y / 1) * Scale.Y;
                newPositon = new Vector2(x, y);
            }

            //Console.WriteLine("Error: in |Class: Helper|Method: UpdateOrigin| dint work as it neeed to");
            //go.Transform.Origin = new Vector2(0,0);
        }
Example #10
0
        public static List <Vector2> CalcLayout(
            Pattern pattern,
            Vector2 offsetOnSurface,
            PartLayoutEnum layout,
            OriginPositionEnum partOriginPosition,
            int spacing)
        {
            List <Vector2> result = new List <Vector2>();
            Vector2        start  = new Vector2()
            {
                X = 0 + offsetOnSurface.X, Y = 0 + offsetOnSurface.Y
            };
            Vector2 locationPos = new Vector2();

            locationPos += start;
            if (partOriginPosition == OriginPositionEnum.LeftBottom && layout == PartLayoutEnum.LeftToRight)
            {
                float tallest = Pattern.CalcTallestPart(pattern);
                locationPos += new Vector2(0, tallest);
            }
            if (partOriginPosition == OriginPositionEnum.Center && layout == PartLayoutEnum.LeftToRight)
            {
                float tallest = Pattern.CalcTallestPart(pattern);
                locationPos += new Vector2(0, tallest / 2);
            }
            for (int i = 0; i < pattern.Parts.Count; i++)
            {
                PatternPart part         = pattern.Parts[i];
                Vector2     originOffset = PartExtents.CalcOffsetForOrigin(part, partOriginPosition);
                PartExtents dims         = PartExtents.CalcPartExtents(part);
                PartExtents partNextDims = null;
                if (i + 1 < pattern.Parts.Count)
                {
                    PatternPart partNext = pattern.Parts[i + 1];
                    partNextDims = PartExtents.CalcPartExtents(partNext);
                }

                switch (layout)
                {
                default:
                case PartLayoutEnum.LeftToRight:
                    switch (partOriginPosition)
                    {
                    default:
                    case OriginPositionEnum.LeftTop:
                    case OriginPositionEnum.LeftBottom:
                    case OriginPositionEnum.Center:
                        locationPos = LeftToRight(locationPos, originOffset, dims, result, partOriginPosition, partNextDims, spacing);
                        break;
                    }
                    break;

                case PartLayoutEnum.TopToBottom:
                    switch (partOriginPosition)
                    {
                    default:
                    case OriginPositionEnum.LeftTop:
                    case OriginPositionEnum.LeftBottom:
                    case OriginPositionEnum.Center:
                        locationPos = TopToBottom(locationPos, originOffset, dims, result, partOriginPosition, partNextDims, spacing);
                        break;
                    }
                    break;
                }
            }
            return(result);
        }
Example #11
0
 public ImageGUI(SpriteRenderer spriteRenderer, bool isWorldUI, bool blockUI, Color color, OriginPositionEnum originPositionEnum)
 {
     this.SpriteRenderer       = spriteRenderer;
     this.IsWorldUI            = isWorldUI;
     this.BlockGUI             = blockUI;
     this.SpriteRenderer.Color = color;
     this.SpriteRenderer.OriginPositionEnum = originPositionEnum;
 }