public MainMenu(Rectangle windowSize, KeyboardState newKeyboardState, MouseState newMouseState)
        {
            windowWidth = windowSize.Width;
            windowHeight = windowSize.Height;
            keyboardState = newKeyboardState;
            mousestate = newMouseState;
            selection = Selection.Play;
            wallpaper = new Sprite(new Rectangle(0, 0, windowWidth, windowHeight), windowSize);
            wallpaperText = new Sprite(new Rectangle(0, 0, windowWidth, windowHeight), windowSize);
            nuages = new Sprite(new Rectangle(0, 0, windowWidth * 3, windowHeight), windowSize);
            nuages.Direction = new Vector2(-1, 0);
            nuages.Vitesse = 0.1f; // 1f = 1000 px/sec
            mouse = new ParticleEngine(windowSize, new DecimalRectangle(-200, -200, 0, 0), new Vector3(1, 10, 10),
                                new List<string>() { "particle/star"}, 10, 0.1f, 2f, -45f, 15f, 0f, 180f, -1f, 1f, 10f, 150f);
            mouse.SetColorRange(0, 100, 0, 30, 0, 30);
            relativeAmplitudeVibrationSelection = (float)amplitudeVibrationSelection / (float)(windowHeight + windowWidth);
            sprites = new List<AnimatedSprite>();

            menuItems = new Dictionary<Selection, Sprite>();
            menuItems.Add(Selection.Play, new Sprite(new Rectangle(112, 423, 124, 55), windowSize, "menu/textPlay"));
            menuItems.Add(Selection.Extra, new Sprite(new Rectangle(191, 480, 124, 55), windowSize, "menu/textExtra"));
            menuItems.Add(Selection.Options, new Sprite(new Rectangle(394, 470, 135, 55), windowSize, "menu/textOptions"));
            menuItems.Add(Selection.Credit, new Sprite(new Rectangle(562, 400, 124, 55), windowSize, "menu/textCredit"));
            menuItems.Add(Selection.Exit, new Sprite(new Rectangle(675, 480, 101, 55), windowSize, "menu/textExit"));
        }
        public MainMenu(Rectangle windowSize, KeyboardState newKeyboardState, MouseState newMouseState)
        {
            windowWidth = windowSize.Width;
            windowHeight = windowSize.Height;
            keyboardState = newKeyboardState;
            mousestate = newMouseState;
            selection = Selection.Play;
            wallpaper = new Sprite(new Rectangle(0, 0, windowWidth, windowHeight), windowSize);
            wallpaperText = new Sprite(new Rectangle(0, 0, windowWidth, windowHeight), windowSize);
            nuages = new Sprite(new Rectangle(0, 0, windowWidth * 3, windowHeight), windowSize);
            nuages.Direction = new Vector2(-1, 0);
            nuages.Vitesse = 0.1f; // 1f = 1000 px/sec
            mouse = new AnimatedSprite(new Rectangle(-100, -100, 80, 100), windowSize, 8, 4, 40);
            relativeAmplitudeVibrationSelection = (float)amplitudeVibrationSelection / (float)(windowHeight + windowWidth);
            sprites = new List<AnimatedSprite>();

            menuItems = new Dictionary<Selection, Sprite>();
            menuItems.Add(Selection.Play, new Sprite(new Rectangle(112, 423, 124, 55), windowSize, "menu/textPlay"));
            menuItems.Add(Selection.Extra, new Sprite(new Rectangle(191, 480, 124, 55), windowSize, "menu/textExtra"));
            menuItems.Add(Selection.Options, new Sprite(new Rectangle(394, 470, 135, 55), windowSize, "menu/textOptions"));
            menuItems.Add(Selection.Credit, new Sprite(new Rectangle(562, 400, 124, 55), windowSize, "menu/textCredit"));
            menuItems.Add(Selection.Exit, new Sprite(new Rectangle(675, 480, 101, 55), windowSize, "menu/textExit"));

            Fire = new ParticleEngine(new Rectangle(0,windowSize.Height,windowSize.Width,0));
            Fire.SetSpeedRange(0.2f, 2f, 90, 40);
            Fire.SetLifeTimeRange(20, 90);
            Fire.SetScaleRange(0.2f, 1.4f);

            Cursor = new ParticleEngine(new Rectangle());
            Cursor.SetSpeedRange(0.2f, 1.6f, -45, 25);
            Cursor.SetAngularSpeedRange(0, 3);
            Cursor.SetLifeTimeRange(20, 50);
            Cursor.SetScaleRange(0.2f, 1.4f);
            Cursor.SetColorRange(0, 255, 0, 255, 0, 255, 0, 20);
        }
        public SceneCredit(Rectangle windowSize, KeyboardState keyboardState, MouseState mouseState)
        {
            _windowSize = windowSize;
            _keyboardState = keyboardState;

            animations = new List<AnimatedSprite>();
            animations.Add(new AnimatedSprite(new Rectangle(80, 250, 150, 70), _windowSize, "menu/beenTeam"));
            animations.Add(new AnimatedSprite(new Rectangle(394, _windowSize.Height, 280, 130), _windowSize, "menu/authors"));
            animations.Last<AnimatedSprite>().Direction = new Vector2(0, -1);
            animations.Last<AnimatedSprite>().Vitesse = 0.1f;
            animations.Add(new AnimatedSprite(new Rectangle(0, 0, _windowSize.Width, 2 * _windowSize.Height / 5), _windowSize, "menu/credit"));
            animations.Add(new AnimatedSprite(new Rectangle(-300, _windowSize.Height - 100, _windowSize.Width + 300, 100), _windowSize, "menu/lueur1_10x4r21r40", 10, 4, 15, 21, 40, 1));
            _particles = new ParticleEngine(new Rectangle(0, 0, _windowSize.Width, 0), new List<string>() { "particle/ash" }, 3, 0.5f, 0.7f, -90, 20, 0, 0, -2, 2, 0.2f, 1f, 1000f, 1200f);
            _particles.SetColorRange(120, 120, 120, 120, 120, 120, 100, 255);
        }
        public SceneTitre(Rectangle windowSize,KeyboardState keyboardState,MouseState mouseState)
        {
            _windowSize = windowSize;
            _mouseState = mouseState;
            _keyboardstate = keyboardState;

            _wallpaper = new Sprite(new Rectangle(0, 0, windowSize.Width, windowSize.Height), windowSize, "menu/wallpaper");
            _wallpaperText = new Sprite(new Rectangle(0, 0, windowSize.Width, windowSize.Height), windowSize, "menu/wallpaperText");
            _nuages = new Sprite(new Rectangle(0, 0, windowSize.Width * 3, windowSize.Height), windowSize, "general/nuages0");
            _nuages.Direction = new Vector2(-1, 0);
            _nuages.Vitesse = 0.1f; // 1f = 1000 px/sec
            _text = new Sprite(new Rectangle(_windowSize.Width / 2 - 100, 4 * _windowSize.Height / 6+45, 200, 70), _windowSize, "menu/tittleText");
            _particles = new ParticleEngine(windowSize, new DecimalRectangle(0, windowSize.Height, windowSize.Width, 0), new Vector3(1, 15, 15),
                                new List<string>() { "particle/fire", "particle/smoke" }, 30, 0.2f, 1f, 90f, 20f, 0f, 360f, -2, 2, 20f, 200f);
        }
        public SceneExtras(Rectangle windowSize, KeyboardState keyboardState, MouseState mouseState)
        {
            _windowSize = windowSize;
            _mouseState = mouseState;
            _keyboardState = keyboardState;
            selectedSprite = 0;
            currentSize = 150;
            tailleSelection = new Sprite(new Rectangle(0, 400, windowSize.Width, 85), windowSize);
            mouse = new AnimatedSprite(new Rectangle(-100, -100, 60, 80), _windowSize, 8, 4, 30);

            animations = new List<AnimatedSprite>();
            textures = new List<AnimatedSprite>();
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/canalisation1_16x13", 16, 13));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/explosion0_8x6", 8, 6));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/explosion1_8x6", 8, 6));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/explosion2_8x8", 8, 8));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/explosion3_8x4", 8, 4));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/explosion4_8x8", 8, 8));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/fireWall_11x6r23r44", 11, 6));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/popGreen_8x4", 8, 4));
            textures.Add(new AnimatedSprite(new Rectangle(), windowSize, "sprites/spriteElectric_11x3r12r23", 11, 3));
            int c = textures.Count;
            int wi = windowSize.Width / c;
            for (int i = 0; i < c; i++)
            {
                textures.ElementAt<AnimatedSprite>(i).setRelatvePos(
                    new Rectangle(i * wi, 485, wi, windowSize.Height - 485), windowSize.Width, windowSize.Height);
            }

            //particle test
            Snow = new ParticleEngine(new Rectangle(0,0,windowSize.Width,0));
            Snow.SetSpeedRange(1.2f, 1.8f,-90, 40);
            Snow.SetAngularSpeedRange(0, 3);
            Snow.SetLifeTimeRange(20, 800);
            Snow.SetScaleRange(0.3f, 1.4f);
            Snow.SetColorRange(255, 255, 255, 255, 255, 255, 20, 30);

            Fire = new ParticleEngine(new Rectangle());
            Fire.SetSpeedRange(0.3f, 1.4f, 90, 180);
            Fire.SetLifeTimeRange(20, 100);
            Fire.SetScaleRange(0.2f, 1.4f);
            //fin test
        }
        public SceneCredit(Rectangle windowSize, KeyboardState keyboardState, MouseState mouseState)
        {
            _windowSize = windowSize;
            _keyboardState = keyboardState;

            animations = new List<Sprite>();
            animations.Add(new TextSprite("SpriteFont1", _windowSize, new Rectangle(80, 250, 300, 75), Color.Red, "Team BEEN"));
            _authors = new MultipleTextSprite("SpriteFont1", _windowSize, new Rectangle(394, _windowSize.Height, 500, 2100), Color.Red);
            _authors.Direction = new Vector2(0, -1);
            _authors.Vitesse = 0.1f;
            foreach (string s in EugLib.IO.FileStream.readFileLines(INFO.ENG?"Content/AUTHORSa":"Content/AUTHORS"))
                _authors.Add(s);
            animations.Add(_authors);
            animations.Add(new AnimatedSprite(new Rectangle(0, 0, _windowSize.Width, 2 * _windowSize.Height / 8), _windowSize, "menu/credit"));
            animations.Add(new AnimatedSprite(new Rectangle(-300, _windowSize.Height - 100, _windowSize.Width + 300, 100), _windowSize, "menu/lueur1_10x4r21r40", 10, 4, 15, 21, 40, 1));
            _particles = new ParticleEngine(
                _windowSize,
                new DecimalRectangle(0, 0, _windowSize.Width, 0),
                new Vector3(0.2f, 10f, 10f),
                new List<string>() { "particle/ash" },
                10, 0.3f, 1.2f, -90f, 25, 0, 180, -2, 2, 500f, 700f);
            _particles.SetColorRange(80, 80, 80, 80, 80, 80);
        }