示例#1
0
 //takes a list of tiles and highlights them all.
 private void highlightTiles(LinkedList<Tile> tiles, Color color)
 {
     Tile tile;
     while (tiles.Count > 0){
         tile = tiles.First.Value;
         tiles.RemoveFirst();
         tile.highlight(color);
     }
 }
示例#2
0
        public void Update(Tile selectedTool)
        {
            MouseState mouseState = Mouse.GetState();
            int mousex = mouseState.X;
            int mousey = mouseState.Y;

            //if mouse is within the map, do mouse over...
            if ((mousex > 10 && mousex < MAP_WIDTH + 10) &&
                (mousey > 10 && mousey < MAP_HEIGHT + 10))
            {
                double tempx = (mousex - 10) / pixelsperside;
                int tilex = (int)Math.Floor(tempx);

                double tempy = (mousey - 10) / pixelsperside;
                int tiley = (int)Math.Floor(tempy);

                if (mouseState.LeftButton == ButtonState.Pressed)
                {
                    TileType selectedType = selectedTool.getType();
                    if (selectedType == TileType.PLAYER)
                    {
                        Tile cur = map[tilex][tiley];
                        if (cur.getType() != TileType.WALL)
                        {
                            if (playertile == null)
                                playertile = new Tile(tilex, tiley, cur.getX(), cur.getY(), cur.getLength(), selectedTool.getTexture(), selectedTool.getColor());
                            else
                            {
                                playerx = tilex;
                                playery = tiley;

                                playertile.setX(cur.getX());
                                playertile.setY(cur.getY());
                                playertile.setMapX(tilex);
                                playertile.setMapY(tiley);
                            }
                        }
                    }
                    else if (selectedType == TileType.MONSTER)
                    {
                        Tile cur = map[tilex][tiley];
                        if (cur.getType() != TileType.WALL)
                        {
                            if (monstertile == null)
                                monstertile = new Tile(tilex, tiley, cur.getX(), cur.getY(), cur.getLength(), selectedTool.getTexture(), selectedTool.getColor());
                            else
                            {
                                monsterx = tilex;
                                monstery = tiley;

                                monstertile.setX(cur.getX());
                                monstertile.setY(cur.getY());
                                monstertile.setMapX(tilex);
                                monstertile.setMapY(tiley);
                            }
                        }
                    }
                    else
                    {
                        map[tilex][tiley].applyTool(selectedTool);
                    }

                }
                    if (highlighted != null)
                        highlighted.unhighlight();

                    highlighted = map[tilex][tiley];
                    highlighted.highlight();
            }
        }