public void Load(ContentManager content)
        {
            lastClickTime = 0;
            index = 0;
            isFinished = false;
            frames = new List<Texture2D>();

            string GUIFolder = GraphicSettings.GetGUIFolder();

            font = content.Load<SpriteFont>(GUIFolder + "Consolas");
            Texture2D buttonTexture = content.Load<Texture2D>(GUIFolder + "InGameButton");
            Rectangle r = new Rectangle((int)(GraphicSettings.CenterScreen.X - buttonTexture.Width / 2),
                GraphicSettings.ScreenBounds.Height - (buttonTexture.Height + 20), buttonTexture.Width, buttonTexture.Height);
            forwardBt = new Button(r, "Avanti", "ForwardButton");
            forwardBt.LoadTextureAndFont(buttonTexture, font);
            forwardBt.SetTextPosition();

            for(int i = 1; i < 7; i++)
            {
                frames.Add(content.Load<Texture2D>("Tutorial/" + i.ToString()));
            }
        }
        static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width + relativeScreen.X, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 4, (Height - 200) / 5);
            buttonDimensions.X -= 20;
            buttonDimensions.Y -= 10;

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = Color.Yellow;
            txt.SetData(data);

            string[] buttonsText = new string[] { "Crea colonia", "Terraforma"};
            string[] buttonsType = new string[] { "Found", "Terraform"};
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + 3 * relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + i * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                dishabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));

            }
            foreach (Button b in dishabitedButtons)
            {
                b.LoadTextureAndFont(txt, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }

            buttonDimensions = new Vector2(Width / 10, Height / 16);

            data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            ChoiceButtons.Add(new Button(new Rectangle(), "Crea colonia", "YesButton"));
            ChoiceButtons[0].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Annulla", "CancelButton"));
            ChoiceButtons[1].LoadTexture(txt);

            int w = ChoiceButtons[0].ButtonTexture.Width;
            int h = ChoiceButtons[0].ButtonTexture.Height;
            int s = 25;
            int X = (int)GraphicSettings.CenterScreen.X - (w + s);
            int j = 0;
            foreach (Button b in ChoiceButtons)
            {
                b.Position = new Rectangle(X + j * w + j * s, (int)GraphicSettings.CenterScreen.Y, w, h);
                b.SetTextColor(Color.Black);
                j++;
            }
        }
        /// <summary>
        /// Carica le texture e il font
        /// </summary>
        /// <param name="content"></param>
        public void Load(Game game)
        {
            string GUIFolder = GraphicSettings.GetGUIFolder();
            font = game.Content.Load<SpriteFont>(GUIFolder + "Consolas");
            buttonTexture = game.Content.Load<Texture2D>(GUIFolder + "InGameButton");
            titleTexture = game.Content.Load<Texture2D>(GUIFolder + "TitleLogo");
            background = game.Content.Load<Texture2D>(@"Skybox/BackgroundCredits");

            GraphicsDevice device = game.GraphicsDevice;
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            Vector2 buttonDimensions = new Vector2(buttonTexture.Width, buttonTexture.Height);

            string s = "Torna al menu";
            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)font.MeasureString(s).X + 20, (int)font.MeasureString(s).Y + 20);

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 255);
            txt.SetData(data);

            backButton = new Button(new Rectangle(10, Height - (int)buttonDimensions.Y - 10,
                (int)buttonDimensions.X, (int)buttonDimensions.Y), "Torna al menu", "MenuButton");
            backButton.LoadTextureAndFont(txt, font);
            backButton.SetTextPosition();
            backButton.SetTextColor(Color.Yellow);

            titlePosition = new Vector2((Width - titleTexture.Width) / 2, Height);
            textPosition = new Vector2(0, titleTexture.Height + Height);
        }
        static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width + relativeScreen.X, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 4, (Height - 200) / 5);
            buttonDimensions.X -= 20;
            buttonDimensions.Y -= 10;

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = Color.Yellow;
            txt.SetData(data);

            /*
            string[] buttonsText = new string[] { "Commercia", "Rotta commerciale", "Regala", "Eventi", "Spia", "Attacca", "Ripara", "Ricarica" };
            string[] buttonsType = new string[] { "Commerce", "CommercialRoute", "Gift", "Events", "Spy", "Attack", "Repair", "Recharge" };
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + relativeScreen.Width / 2 + (i % 2) * relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + (i / 2) * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                inhabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));
            }
            */
            string[] buttonsText = new string[] { "Commercia", "Regala", "Ripara", "Ricarica" };
            string[] buttonsType = new string[] { "Commerce", "Gift", "Repair", "Recharge" };
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + relativeScreen.Width / 2 + relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + i * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                inhabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));
            }

            foreach (Button b in inhabitedButtons)
            {
                b.LoadTextureAndFont(txt, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }
        }
        static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 6, (Height - 250) / 8);

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Color[] dataClicked = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            buttonTexture = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));
            buttonClickedTexture = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
            {
                data[i] = Color.Yellow;
                dataClicked[i] = Color.Orange;
            }
            buttonTexture.SetData(data);
            buttonClickedTexture.SetData(dataClicked);

            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 50, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Compra", "Buy"));
            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 60 + (int)buttonDimensions.Y, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Vendi", "Sell"));
            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 70 + 2 * (int)buttonDimensions.Y, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Potenziamenti", "PowerUps"));

            foreach (Button b in commerceButtons)
            {
                b.LoadTextureAndFont(buttonTexture, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }
        }
        public static void Load(Game game)
        {
            string GUIFolder = GraphicSettings.GetGUIFolder();

            OnScreenButtons = new List<Button>();
            spriteBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch));

            font = game.Content.Load<SpriteFont>(GUIFolder + "Consolas");
            bar = game.Content.Load<Texture2D>(GUIFolder + "Bar");

            heart = game.Content.Load<Texture2D>(GUIFolder + "Heart");
            power = game.Content.Load<Texture2D>(GUIFolder + "Power");
            money = game.Content.Load<Texture2D>(GUIFolder + "Money");

            pointedButton = new Button(new Rectangle(), "", "PointedButton");
            pointedButton.LoadTextureAndFont(game.Content.Load<Texture2D>(GUIFolder + "InGameButton"), font);

            OnScreenButtons.Add(new Button(new Rectangle(), "CameraButton"));
            OnScreenButtons[0].LoadTexture(game.Content.Load<Texture2D>(GUIFolder + "CameraButton"));
            OnScreenButtons.Add(new Button(new Rectangle(), "PauseButton"));
            OnScreenButtons[1].LoadTexture(game.Content.Load<Texture2D>(GUIFolder + "PauseButton"));
            OnScreenButtons.Add(new Button(new Rectangle(), "Torna alla\n galassia", "ReturnToGalaxy"));
            OnScreenButtons[2].LoadTexture(game.Content.Load<Texture2D>(GUIFolder + "InGameButton"));
            SetButtonPositions();
        }
        public static void Load(Game game)
        {
            state = PauseState.PAUSE; lastClickTime = 0;
            string GUIFolder = GraphicSettings.GetGUIFolder();

            OnScreenButtons = new List<Button>();
            ChoiceButtons = new List<Button>();
            spriteBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch));

            font = game.Content.Load<SpriteFont>(GUIFolder + "Consolas");

            device = game.GraphicsDevice;
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            Vector2 buttonDimensions = new Vector2(Width / 6, Height / 12);

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            OnScreenButtons.Add(new Button(new Rectangle(), "Continua gioco", "ContinueButton"));
            OnScreenButtons[0].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Salva gioco", "SaveButton"));
            OnScreenButtons[1].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Torna al menu", "MenuButton"));
            OnScreenButtons[2].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Torna a Windows", "ExitButton"));
            OnScreenButtons[3].LoadTexture(txt);

            buttonDimensions = new Vector2(Width / 10, Height / 16);

            data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            ChoiceButtons.Add(new Button(new Rectangle(), "Salva ed esci", "YesButton"));
            ChoiceButtons[0].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Esci senza salvare", "NoButton"));
            ChoiceButtons[1].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Annulla", "CancelButton"));
            ChoiceButtons[2].LoadTexture(txt);

            SavedFileButton = new Button(new Rectangle(), "Ok", "SavedFileButton");
            SavedFileButton.LoadTexture(txt);
            SetButtonPositions();
        }