Exemple #1
0
        protected override void Update(GameTime gameTime)
        {
            MouseState mouse = Mouse.GetState();

            switch (CurrentGameState)
            {

                //Pause..
                case MainMenu.GameState.MainMenu:
                    if (btnPlay.isClicked == true) CurrentGameState = MainMenu.GameState.Jeu;
                    btnPlay.Update(mouse);
                    if (btnQuit.isClicked == true) Exit();
                    btnQuit.Update(mouse);
                    if (btnOptions.isClicked == true) CurrentGameState = MainMenu.GameState.Options;
                    btnOptions.Update(mouse);
                    break;

                case MainMenu.GameState.Paused:
                    if (btnPlay.isClicked == true) CurrentGameState = MainMenu.GameState.Jeu;
                    btnPlay.Update(mouse);
                    if (btnQuit.isClicked == true) Exit();
                    btnQuit.Update(mouse);
                    if (btnMenu.isClicked == true) CurrentGameState = MainMenu.GameState.MainMenu;
                    if (btnOptions.isClicked == true) CurrentGameState = MainMenu.GameState.Options;
                    btnOptions.Update(mouse);
                    break;

                case MainMenu.GameState.Jeu:
                    //déplacement du joueur
                    #region
                    Vector2 moveVector = Vector2.Zero;
                    Vector2 moveDir = Vector2.Zero;
                    string animation = "";

                    KeyboardState ks = Keyboard.GetState();

                    if (ks.IsKeyDown(Keys.NumPad7))
                    {
                        moveDir = new Vector2(-2, -1);
                        animation = "WalkNorthWest";
                        moveVector += new Vector2(-2, -1);
                    }

                    if (ks.IsKeyDown(Keys.NumPad8))
                    {
                        moveDir = new Vector2(0, -1);
                        animation = "WalkNorth";
                        moveVector += new Vector2(0, -1);
                    }

                    if (ks.IsKeyDown(Keys.NumPad9))
                    {
                        moveDir = new Vector2(2, -1);
                        animation = "WalkNorthEast";
                        moveVector += new Vector2(2, -1);
                    }

                    if (ks.IsKeyDown(Keys.NumPad4))
                    {
                        moveDir = new Vector2(-2, 0);
                        animation = "WalkWest";
                        moveVector += new Vector2(-2, 0);
                    }

                    if (ks.IsKeyDown(Keys.NumPad6))
                    {
                        moveDir = new Vector2(2, 0);
                        animation = "WalkEast";
                        moveVector += new Vector2(2, 0);
                    }

                    if (ks.IsKeyDown(Keys.NumPad1))
                    {
                        moveDir = new Vector2(-2, 1);
                        animation = "WalkSouthWest";
                        moveVector += new Vector2(-2, 1);
                    }

                    if (ks.IsKeyDown(Keys.NumPad2))
                    {
                        moveDir = new Vector2(0, 1);
                        animation = "WalkSouth";
                        moveVector += new Vector2(0, 1);
                    }

                    if (ks.IsKeyDown(Keys.NumPad3))
                    {
                        moveDir = new Vector2(2, 1);
                        animation = "WalkSouthEast";
                        moveVector += new Vector2(2, 1);
                    }

                    //Pause..

                    if (Keyboard.GetState().IsKeyDown(Keys.Escape))
                        CurrentGameState = MainMenu.GameState.Paused;

                    //////aumentation et dimiution du volume
                    if (ks.IsKeyDown(Keys.RightControl) && ks.IsKeyDown(Keys.Up))
                    {
                        Volume += 0.1f;
                        MediaPlayer.Volume = Volume;

                    }
                    if (ks.IsKeyDown(Keys.RightControl) && ks.IsKeyDown(Keys.Down))
                    {
                        Volume -= 0.1f;
                        MediaPlayer.Volume = Volume;
                    }
                    //////

                    //Point nopoint;
                    // Point where = myMap.WorldToMapCell(new Point(Mouse.GetState().X, Mouse.GetState().Y), out nopoint);

                    //interaction entre le joueur et la Map

                    if (myMap.GetCellAtWorldPoint(vlad.Position + moveDir).Walkable == false)
                    {
                        moveDir = Vector2.Zero;
                    }

                    if (Math.Abs(myMap.GetOverallHeight(vlad.Position) - myMap.GetOverallHeight(vlad.Position + moveDir)) > 10)
                    {
                        moveDir = Vector2.Zero;
                    }

                    if (moveDir.Length() != 0)
                    {
                        vlad.MoveBy((int)moveDir.X, (int)moveDir.Y);
                        if (vlad.CurrentAnimation != animation)
                            vlad.CurrentAnimation = animation;
                    }
                    else
                    {
                        vlad.CurrentAnimation = "Idle" + vlad.CurrentAnimation.Substring(4);
                    }
                    float vladX = MathHelper.Clamp(
                        vlad.Position.X, 0 + vlad.DrawOffset.X, Camera.WorldWidth);
                    float vladY = MathHelper.Clamp(
                        vlad.Position.Y, 0 + vlad.DrawOffset.Y, Camera.WorldHeight);

                    vlad.Position = new Vector2(vladX, vladY);

                    Vector2 testPosition = Camera.WorldToScreen(vlad.Position);

                    if (testPosition.X < 100)
                    {
                        Camera.Move(new Vector2(testPosition.X - 100, 0));
                    }

                    if (testPosition.X > (Camera.ViewWidth - 100))
                    {
                        Camera.Move(new Vector2(testPosition.X - (Camera.ViewWidth - 100), 0));
                    }

                    if (testPosition.Y < 100)
                    {
                        Camera.Move(new Vector2(0, testPosition.Y - 100));
                    }

                    if (testPosition.Y > (Camera.ViewHeight - 100))
                    {
                        Camera.Move(new Vector2(0, testPosition.Y - (Camera.ViewHeight - 100)));
                    }
                    /////////////////////////////////////////////
                    vlad.Update(gameTime);
                    break;
            }
            #endregion;

            base.Update(gameTime);
        }
Exemple #2
0
        protected override void Update(GameTime gameTime)
        {
            MouseState mouse = Mouse.GetState();

            switch (CurrentGameState)
            {
            //Pause..
            case MainMenu.GameState.MainMenu:
                if (btnPlay.isClicked == true)
                {
                    CurrentGameState = MainMenu.GameState.Jeu;
                }
                btnPlay.Update(mouse);
                if (btnQuit.isClicked == true)
                {
                    Exit();
                }
                btnQuit.Update(mouse);
                if (btnOptions.isClicked == true)
                {
                    CurrentGameState = MainMenu.GameState.Options;
                }
                btnOptions.Update(mouse);
                break;


            case MainMenu.GameState.Paused:
                if (btnPlay.isClicked == true)
                {
                    CurrentGameState = MainMenu.GameState.Jeu;
                }
                btnPlay.Update(mouse);
                if (btnQuit.isClicked == true)
                {
                    Exit();
                }
                btnQuit.Update(mouse);
                if (btnMenu.isClicked == true)
                {
                    CurrentGameState = MainMenu.GameState.MainMenu;
                }
                if (btnOptions.isClicked == true)
                {
                    CurrentGameState = MainMenu.GameState.Options;
                }
                btnOptions.Update(mouse);
                break;



            case MainMenu.GameState.Jeu:
                //déplacement du joueur
                #region
                Vector2 moveVector = Vector2.Zero;
                Vector2 moveDir    = Vector2.Zero;
                string  animation  = "";

                KeyboardState ks = Keyboard.GetState();

                if (ks.IsKeyDown(Keys.NumPad7))
                {
                    moveDir     = new Vector2(-2, -1);
                    animation   = "WalkNorthWest";
                    moveVector += new Vector2(-2, -1);
                }

                if (ks.IsKeyDown(Keys.NumPad8))
                {
                    moveDir     = new Vector2(0, -1);
                    animation   = "WalkNorth";
                    moveVector += new Vector2(0, -1);
                }

                if (ks.IsKeyDown(Keys.NumPad9))
                {
                    moveDir     = new Vector2(2, -1);
                    animation   = "WalkNorthEast";
                    moveVector += new Vector2(2, -1);
                }

                if (ks.IsKeyDown(Keys.NumPad4))
                {
                    moveDir     = new Vector2(-2, 0);
                    animation   = "WalkWest";
                    moveVector += new Vector2(-2, 0);
                }

                if (ks.IsKeyDown(Keys.NumPad6))
                {
                    moveDir     = new Vector2(2, 0);
                    animation   = "WalkEast";
                    moveVector += new Vector2(2, 0);
                }

                if (ks.IsKeyDown(Keys.NumPad1))
                {
                    moveDir     = new Vector2(-2, 1);
                    animation   = "WalkSouthWest";
                    moveVector += new Vector2(-2, 1);
                }

                if (ks.IsKeyDown(Keys.NumPad2))
                {
                    moveDir     = new Vector2(0, 1);
                    animation   = "WalkSouth";
                    moveVector += new Vector2(0, 1);
                }

                if (ks.IsKeyDown(Keys.NumPad3))
                {
                    moveDir     = new Vector2(2, 1);
                    animation   = "WalkSouthEast";
                    moveVector += new Vector2(2, 1);
                }


                //Pause..

                if (Keyboard.GetState().IsKeyDown(Keys.Escape))
                {
                    CurrentGameState = MainMenu.GameState.Paused;
                }



                //////aumentation et dimiution du volume
                if (ks.IsKeyDown(Keys.RightControl) && ks.IsKeyDown(Keys.Up))
                {
                    Volume            += 0.1f;
                    MediaPlayer.Volume = Volume;
                }
                if (ks.IsKeyDown(Keys.RightControl) && ks.IsKeyDown(Keys.Down))
                {
                    Volume            -= 0.1f;
                    MediaPlayer.Volume = Volume;
                }
                //////



                //Point nopoint;
                // Point where = myMap.WorldToMapCell(new Point(Mouse.GetState().X, Mouse.GetState().Y), out nopoint);

                //interaction entre le joueur et la Map


                if (myMap.GetCellAtWorldPoint(vlad.Position + moveDir).Walkable == false)
                {
                    moveDir = Vector2.Zero;
                }

                if (Math.Abs(myMap.GetOverallHeight(vlad.Position) - myMap.GetOverallHeight(vlad.Position + moveDir)) > 10)
                {
                    moveDir = Vector2.Zero;
                }

                if (moveDir.Length() != 0)
                {
                    vlad.MoveBy((int)moveDir.X, (int)moveDir.Y);
                    if (vlad.CurrentAnimation != animation)
                    {
                        vlad.CurrentAnimation = animation;
                    }
                }
                else
                {
                    vlad.CurrentAnimation = "Idle" + vlad.CurrentAnimation.Substring(4);
                }
                float vladX = MathHelper.Clamp(
                    vlad.Position.X, 0 + vlad.DrawOffset.X, Camera.WorldWidth);
                float vladY = MathHelper.Clamp(
                    vlad.Position.Y, 0 + vlad.DrawOffset.Y, Camera.WorldHeight);

                vlad.Position = new Vector2(vladX, vladY);

                Vector2 testPosition = Camera.WorldToScreen(vlad.Position);

                if (testPosition.X < 100)
                {
                    Camera.Move(new Vector2(testPosition.X - 100, 0));
                }

                if (testPosition.X > (Camera.ViewWidth - 100))
                {
                    Camera.Move(new Vector2(testPosition.X - (Camera.ViewWidth - 100), 0));
                }

                if (testPosition.Y < 100)
                {
                    Camera.Move(new Vector2(0, testPosition.Y - 100));
                }

                if (testPosition.Y > (Camera.ViewHeight - 100))
                {
                    Camera.Move(new Vector2(0, testPosition.Y - (Camera.ViewHeight - 100)));
                }
                /////////////////////////////////////////////
                vlad.Update(gameTime);
                break;
            }
            #endregion ;

            base.Update(gameTime);
        }