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); }
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)); } } }
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); }
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; }
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); }
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); }
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(); }
// 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; }
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); }
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); }
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; }