PathfindingTest.Map.MiniMap.MapToMiniMap C# (CSharp) Method

MapToMiniMap() public method

Converts map coordinates to mini map coordinates
public MapToMiniMap ( Point mapCoordinates ) : Point
mapCoordinates Point The map coordinates you want to convert
return Point
        public Point MapToMiniMap(Point mapCoordinates)
        {
            float unscaledFactorX = (this.miniMapTexture.Width / (float)this.map.collisionMap.mapWidth);
            float unscaledFactorY = (this.miniMapTexture.Height / (float)this.map.collisionMap.mapHeight);

            float scaledFactorX = (this.currentDrawRectangle.Width / (float)this.miniMapTexture.Width);
            float scaledFactorY = (this.currentDrawRectangle.Height / (float)this.miniMapTexture.Height);

            return new Point((int)(mapCoordinates.X * unscaledFactorX * scaledFactorX),
                (int)(mapCoordinates.Y * unscaledFactorY * scaledFactorY));
        }

Usage Example

Esempio n. 1
0
        public void DrawMiniLights(SpriteBatch spriteBatch, MiniMap map)
        {
            for (int i = 0; i < this.units.Count(); i++)
            {
                Unit unit = this.units.ElementAt(i);
                Point miniMapPoint = map.MapToMiniMap(unit.GetLocation());
                spriteBatch.Draw(
                    lightTexture,
                    new Vector2(
                        miniMapPoint.X - 1,
                        miniMapPoint.Y - 1),
                    null,
                    Color.White,
                    0f,
                    new Vector2(16, 16),
                    (int)(unit.visionRange / lightTexture.Width / (2.1)),
                    SpriteEffects.None,
                    1.0f);
            }

            for (int i = 0; i < this.buildings.Count(); i++)
            {
                Building b = this.buildings.ElementAt(i);
                if (b.state != Building.State.Preview)
                {
                    Point miniMapPoint = map.MapToMiniMap(b.GetLocation());
                    spriteBatch.Draw(
                        lightTexture,
                        new Vector2(miniMapPoint.X,
                                    miniMapPoint.Y),
                        null,
                        Color.White,
                        0f,
                        new Vector2(16, 16),
                        (int)(b.visionRange / lightTexture.Width / (2.1)),
                        SpriteEffects.None,
                        1.0f);
                }
            }
        }