Esempio n. 1
0
        public void Init(ContentManager content)
        {
            if (Singleton.Instance.CurrentStage >= 2)
            {
                Singleton.Instance.CurrentStage = 0;
                m_screenManager.ChangeScreen(new WinScreen(m_screenManager));
            }

            _gameObjects               = new List <GameObject>();
            skill_button_texturelist   = new List <Texture2D>();
            skill_button_scalelist     = new List <Vector2>();
            skill_button_poslist       = new List <Vector2>();
            nav_button_scalelist       = new List <Vector2>();
            nav_button_poslist         = new List <Vector2>();
            nav_button_colorlist       = new List <Color>();
            _addskill_button_scalelist = new List <Vector2>();
            nav_button_name_list       = new List <string>();
            _skillDes = new string[3, 3];


            _bg2            = content.Load <Texture2D>("sprites/fram1");
            _font           = content.Load <SpriteFont>("font/File");
            _KeyboardCursor = content.Load <Texture2D>("sprites/hitbox");
            _skillwindow    = content.Load <Texture2D>("sprites/newmainskill");
            _addskill       = content.Load <Texture2D>("sprites/newplus");

            _selected        = content.Load <SoundEffect>("sounds/selected_sound").CreateInstance();
            _selected1       = content.Load <SoundEffect>("sounds/selected_sound").CreateInstance();
            _cursorselection = content.Load <SoundEffect>("sounds/selection_sound").CreateInstance();


            switch (Singleton.Instance.CurrentHero)
            {
            case "zeus":
                _bg           = content.Load <Texture2D>("sprites/z1");
                _selectedChar = content.Load <Texture2D>("sprites/sheet_zeus");
                selectedChar  = new GameObject(null,
                                               null,
                                               new CharacterGraphicComponent(content, new Dictionary <string, Animation>()
                {
                    { "Idle", new Animation(_selectedChar, new Rectangle(0, 0, 400, 240), 2) }
                }),
                                               null)
                {
                    Position = new Vector2(Singleton.SCREENWIDTH / 2 - 400, Singleton.SCREENHEIGHT / 2),
                    HP       = 1,
                    IsActive = false
                };
                _gameObjects.Add(selectedChar);

                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_1"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_2"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_3"));

                _skillDes[0, 0] = "lv.1  +2 damage";
                _skillDes[0, 1] = "lv.2  +3 damage";
                _skillDes[0, 2] = "lv.3  +4 damage";

                _skillDes[1, 0] = "lv.1  +2 damage";
                _skillDes[1, 1] = "lv.2  +4 damage";
                _skillDes[1, 2] = "lv.3  +6 damage";

                _skillDes[2, 0] = "lv.1  30% chance";
                _skillDes[2, 1] = "lv.2  40% chance";
                _skillDes[2, 2] = "lv.3  50% chance";
                break;

            case "thor":
                _bg           = content.Load <Texture2D>("sprites/t1");
                _selectedChar = content.Load <Texture2D>("sprites/sheet_thor");
                selectedChar  = new GameObject(null,
                                               null,
                                               new CharacterGraphicComponent(content, new Dictionary <string, Animation>()
                {
                    { "Idle", new Animation(_selectedChar, new Rectangle(0, 0, 400, 240), 2) }
                }),
                                               null)
                {
                    Position = new Vector2(Singleton.SCREENWIDTH / 2 - 400, Singleton.SCREENHEIGHT / 2),
                    HP       = 1,
                    IsActive = false
                };
                _gameObjects.Add(selectedChar);

                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_1"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_2"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_3"));

                _skillDes[0, 0] = "lv.1  +1 armor";
                _skillDes[0, 1] = "lv.2  +2 armor";
                _skillDes[0, 2] = "lv.3  +3 armor";

                _skillDes[1, 0] = "lv.1  +25% size";
                _skillDes[1, 1] = "lv.2  +50% size";
                _skillDes[1, 2] = "lv.3  +100% size";

                _skillDes[2, 0] = "lv.1  10% chance";
                _skillDes[2, 1] = "lv.2  20% chance";
                _skillDes[2, 2] = "lv.3  30% chance";
                break;
            }

            skill_button_scalelist.Add(Vector2.One);
            skill_button_scalelist.Add(Vector2.One);
            skill_button_scalelist.Add(Vector2.One);

            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 - 50, Singleton.SCREENHEIGHT / 2));
            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 200, Singleton.SCREENHEIGHT / 2));
            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 450, Singleton.SCREENHEIGHT / 2));

            _addskill_button_scalelist.Add(Vector2.One);
            _addskill_button_scalelist.Add(Vector2.One);
            _addskill_button_scalelist.Add(Vector2.One);

            nav_button_poslist.Add(new Vector2(100, Singleton.SCREENHEIGHT - 100));
            nav_button_poslist.Add(new Vector2(300, Singleton.SCREENHEIGHT - 100));
            nav_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 200, Singleton.SCREENHEIGHT - 100));

            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));
            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));
            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));

            nav_button_colorlist.Add(Color.White);
            nav_button_colorlist.Add(Color.White);
            nav_button_colorlist.Add(Color.White);

            nav_button_name_list.Add("Back");
            nav_button_name_list.Add("START");
            nav_button_name_list.Add("Reset skill");

            KeyboardCursorPos = skill_button_poslist[0];

            skillPoint = 2;

            keycursorstate = Keycursorstate.Skill;

            _selected.Volume        = Singleton.Instance.MasterSFXVolume;
            _selected1.Volume       = Singleton.Instance.MasterSFXVolume;
            _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

            //Console.WriteLine("Upgrade Screen stage " + Singleton.Instance.CurrentStage);
            //Console.WriteLine("Hero value: " + Singleton.Instance.CurrentHero);
            //Console.WriteLine("Stage value: " + Singleton.Instance.CurrentStage);
            //Console.WriteLine("skill 1 value: " + Singleton.Instance.level_sk1);
            //Console.WriteLine("skill 2 value: " + Singleton.Instance.level_sk2);
            //Console.WriteLine("skill 3 value: " + Singleton.Instance.level_sk3);
            //Console.WriteLine("Previous skill 1 value: " + Singleton.Instance.previous_level_sk1);
            //Console.WriteLine("Previous skill 2 value: " + Singleton.Instance.previous_level_sk2);
            //Console.WriteLine("Previous skill 3 value: " + Singleton.Instance.previous_level_sk3);
            //Console.WriteLine("Keyboard status: " + Singleton.Instance.isKeyboardCursorActive);
            //Console.WriteLine("Mouse status: " + Singleton.Instance.isMouseActive);
            //Console.WriteLine("BGM Value: " + Singleton.Instance.MasterBGMVolume);
            //Console.WriteLine("SFX Value: " + Singleton.Instance.MasterSFXVolume);
            //Console.WriteLine("----------------------------------------------------------------------------------------------------");

            previous_level_sk1 = Singleton.Instance.level_sk1;
            previous_level_sk2 = Singleton.Instance.level_sk2;
            previous_level_sk3 = Singleton.Instance.level_sk3;
        }
Esempio n. 2
0
        public void HandleInput(GameTime gameTime)
        {
            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Right) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter++;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Skill:
                    if (keyboardCursorPosCounter > skill_button_poslist.Count - 1)
                    {
                        keyboardCursorPosCounter = 0;
                    }
                    KeyboardCursorPos = skill_button_poslist[keyboardCursorPosCounter];

                    /*                        Console.WriteLine("Skill Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter >= nav_button_poslist.Count + skill_button_poslist.Count)
                    {
                        keyboardCursorPosCounter = skill_button_poslist.Count;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - skill_button_poslist.Count];

                    /*                        Console.WriteLine("Nav Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + (nav_button_poslist.Count + skill_button_poslist.Count));
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;
                }
                _cursorselection.Play();
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Left) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter--;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Skill:
                    if (keyboardCursorPosCounter < 0)
                    {
                        keyboardCursorPosCounter = skill_button_poslist.Count - 1;
                    }
                    KeyboardCursorPos = skill_button_poslist[keyboardCursorPosCounter];

                    /*                        Console.WriteLine("Skill Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter < skill_button_poslist.Count)
                    {
                        keyboardCursorPosCounter = nav_button_poslist.Count + skill_button_poslist.Count - 1;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - skill_button_poslist.Count];

                    /*                        Console.WriteLine("Nav Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + ((nav_button_poslist.Count - 1) + (skill_button_poslist.Count - 1)));
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;
                }
                _cursorselection.Play();
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Down) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Skill:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = nav_button_poslist.Count + skill_button_poslist.Count - 1;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - skill_button_poslist.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    _cursorselection.Play();

                    /*                        Console.WriteLine("Nav Down key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = skill_button_poslist[keyboardCursorPosCounter];
                        keycursorstate           = Keycursorstate.Skill;
                    }
                    _cursorselection.Play();

                    /*                        Console.WriteLine("Skill Down key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Up) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Skill:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = nav_button_poslist.Count + skill_button_poslist.Count - 1;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - skill_button_poslist.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    _cursorselection.Play();

                    /*                        Console.WriteLine("Nav Up key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = skill_button_poslist[keyboardCursorPosCounter];
                        keycursorstate           = Keycursorstate.Skill;
                        _cursorselection.Play();
                    }

                    /*                       Console.WriteLine("Skill Up key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                     Console.WriteLine("State = " + (int)keycursorstate);*/
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Escape) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                _selected.Play();
                m_screenManager.ChangeScreen(new SelectCharScreen(m_screenManager));
            }


            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Enter) && Singleton.Instance._currentkey != Singleton.Instance._previouskey && Singleton.Instance.isKeyboardCursorActive)
            {
                switch (keyboardCursorPosCounter)
                {
                case 0:    //skill1
                    if (Singleton.Instance.level_sk1 < 3 && skillPoint > 0)
                    {
                        Singleton.Instance.level_sk1 += 1;
                        skillPoint -= 1;
                        //Start to do play selected button sound
                        if (_selected.State == SoundState.Playing)
                        {
                            _selected.Stop();
                            _selected1.Play();
                        }
                        else if (_selected1.State == SoundState.Playing)
                        {
                            _selected1.Stop();
                            _selected.Play();
                        }
                        else
                        {
                            _selected.Play();
                        }
                        //End to do play selected button sound
                    }
                    break;

                case 1:    //skill2
                    if (Singleton.Instance.level_sk2 < 3 && skillPoint > 0)
                    {
                        Singleton.Instance.level_sk2 += 1;
                        skillPoint -= 1;
                        //Start to do play selected button sound
                        if (_selected.State == SoundState.Playing)
                        {
                            _selected.Stop();
                            _selected1.Play();
                        }
                        else if (_selected1.State == SoundState.Playing)
                        {
                            _selected1.Stop();
                            _selected.Play();
                        }
                        else
                        {
                            _selected.Play();
                        }
                        //End to do play selected button sound
                    }
                    break;

                case 2:    //skill3
                    if (Singleton.Instance.level_sk3 < 3 && skillPoint > 0)
                    {
                        Singleton.Instance.level_sk3 += 1;
                        skillPoint -= 1;
                        //Start to do play selected button sound
                        if (_selected.State == SoundState.Playing)
                        {
                            _selected.Stop();
                            _selected1.Play();
                        }
                        else if (_selected1.State == SoundState.Playing)
                        {
                            _selected1.Stop();
                            _selected.Play();
                        }
                        else
                        {
                            _selected.Play();
                        }
                        //End to do play selected button sound
                    }
                    break;

                case 3:    //Back
                           //Do when enter Back button

                    //Start to do play selected button sound
                    _selected.Play();
                    //End to do play selected button sound


                    if (Singleton.Instance.CurrentStage == 0)
                    {
                        m_screenManager.ChangeScreen(new SelectCharScreen(m_screenManager));
                    }
                    else
                    {
                        m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                    }
                    Singleton.Instance.CurrentStage = 0;
                    Singleton.Instance.CurrentHero  = "";
                    break;

                case 4:    //Start
                           //Do when enter Start button

                    //Start to do play selected button sound
                    _selected.Play();
                    Singleton.Instance.CurrentStage += 1;
                    //End to do play selected button sound
                    if (Singleton.Instance.CurrentStage == 1)
                    {
                        m_screenManager.ChangeScreen(new HowToPlayScreen(m_screenManager));
                    }
                    else
                    {
                        m_screenManager.ChangeScreen(new PlayScreen(m_screenManager));
                    }
                    break;

                case 5:    //Reset skill
                           //Do when enter Reset skill button

                    //Start to do play selected button sound
                    if (_selected.State == SoundState.Playing)
                    {
                        _selected.Stop();
                        _selected1.Play();
                    }
                    else if (_selected1.State == SoundState.Playing)
                    {
                        _selected1.Stop();
                        _selected.Play();
                    }
                    else
                    {
                        _selected.Play();
                    }
                    //End to do play selected button sound
                    Singleton.Instance.level_sk1 = previous_level_sk1;
                    Singleton.Instance.level_sk2 = previous_level_sk2;
                    Singleton.Instance.level_sk3 = previous_level_sk3;
                    skillPoint = 2;
                    break;
                }
            }
        }
Esempio n. 3
0
        public void Update(GameTime gameTime)
        {
            cursorselectionPlayedcount = nav_button_colorlist.Count + _gameObjects.Count;//Initial check cursor selection

            Singleton.Instance._previouskey   = Singleton.Instance._currentkey;
            Singleton.Instance._currentkey    = Keyboard.GetState();
            Singleton.Instance._previousmouse = Singleton.Instance._currentmouse;
            Singleton.Instance._currentmouse  = Mouse.GetState();
            // _animationManager.Update(gameTime);

            //Mouse and Keyboard Detect
            if (Singleton.Instance._currentmouse.Position != Singleton.Instance._previousmouse.Position || Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed || !Singleton.Instance.isKeyboardCursorActive)
            {
                Singleton.Instance.isMouseActive          = true;
                Singleton.Instance.isKeyboardCursorActive = false;
            }
            else
            {
                Singleton.Instance.isMouseActive = false;
            }
            //End Mouse and Keyboard Detect

            if (Singleton.Instance._currentmouse.Position.X > 350 && Singleton.Instance._currentmouse.Position.X < 520 &&
                Singleton.Instance._currentmouse.Position.Y > 280 && Singleton.Instance._currentmouse.Position.Y < 520 && Singleton.Instance.isMouseActive)
            {
                zeus.Scale               = new Vector2(1.2f, 1.2f);
                KeyboardCursorPos        = _charPosition[0];
                keyboardCursorPosCounter = 0;
                //Start to do play selection cursor sound
                cursorselectionPlayedcount++;
                //_cursorselection.IsLooped = false;
                _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                {
                    _cursorselection.Play();
                    iscursorselectionPlayed = true;
                }

                //End to do play selection cursor sound
                if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                {
                    zeus.Scale = new Vector2(1.1f, 1.1f);
                }
                else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                {
                    Singleton.Instance.CurrentHero = "zeus";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                }
            }
            else
            {
                zeus.Scale = Vector2.One;
                //Check cursor sound played
                cursorselectionPlayedcount--;
                if (cursorselectionPlayedcount == 0)
                {
                    iscursorselectionPlayed = false;
                }
                //End check cursor sound played
            }

            if (Singleton.Instance._currentmouse.Position.X > 680 && Singleton.Instance._currentmouse.Position.X < 840 &&
                Singleton.Instance._currentmouse.Position.Y > 280 && Singleton.Instance._currentmouse.Position.Y < 520 && Singleton.Instance.isMouseActive)
            {
                thor.Scale               = new Vector2(1.2f, 1.2f);
                KeyboardCursorPos        = _charPosition[1];
                keyboardCursorPosCounter = 1;
                //Start to do play selection cursor sound
                cursorselectionPlayedcount++;
                //_cursorselection.IsLooped = false;
                _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                {
                    _cursorselection.Play();
                    iscursorselectionPlayed = true;
                }

                //End to do play selection cursor sound
                if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                {
                    thor.Scale = new Vector2(1.1f, 1.1f);
                }
                else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                {
                    Singleton.Instance.CurrentHero = "thor";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                }
            }
            else
            {
                thor.Scale = Vector2.One;
                //Check cursor sound played
                cursorselectionPlayedcount--;
                if (cursorselectionPlayedcount == 0)
                {
                    iscursorselectionPlayed = false;
                }
                //End check cursor sound played
            }

            if (Singleton.Instance._currentmouse.Position.X > nav_button_poslist[0].X - _font.MeasureString("BACK").X &&
                Singleton.Instance._currentmouse.Position.X <nav_button_poslist[0].X + _font.MeasureString("BACK").X &&
                                                             Singleton.Instance._currentmouse.Position.Y> nav_button_poslist[0].Y - _font.MeasureString("BACK").Y &&
                Singleton.Instance._currentmouse.Position.Y < nav_button_poslist[0].Y + _font.MeasureString("BACK").Y&& Singleton.Instance.isMouseActive)
            //Back button
            {
                KeyboardCursorPos        = nav_button_poslist[0];
                nav_button_colorlist[0]  = Color.Red;
                nav_button_scalelist[0]  = new Vector2(1.7f, 1.7f);
                keycursorstate           = Keycursorstate.Navigation;
                keyboardCursorPosCounter = _gameObjects.Count;
                //Start to do play selection cursor sound
                cursorselectionPlayedcount++;
                //_cursorselection.IsLooped = false;
                _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                {
                    _cursorselection.Play();
                    iscursorselectionPlayed = true;
                }

                //End to do play selection cursor sound
                if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                {
                    nav_button_colorlist[0] = Color.OrangeRed;
                    nav_button_scalelist[0] = new Vector2(1.6f, 1.6f);
                }
                else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                {
                    nav_button_colorlist[0] = Color.Red;

                    //Do when click Back button
                    m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                }
            }
            else
            {
                nav_button_colorlist[0] = Color.White;
                nav_button_scalelist[0] = new Vector2(1.5f, 1.5f);
                //Check cursor sound played
                cursorselectionPlayedcount--;
                if (cursorselectionPlayedcount == 0)
                {
                    iscursorselectionPlayed = false;
                }
                //End check cursor sound played
            }
            for (int i = 0; i < _gameObjects.Count; i++)
            {
                _gameObjects[i].Update(gameTime, _gameObjects);
            }
        }
Esempio n. 4
0
        public void Update(GameTime gameTime)
        {
            cursorselectionPlayedcount = nav_button_poslist.Count + skill_button_poslist.Count;//Initial check cursor selection

            Singleton.Instance._previouskey = Singleton.Instance._currentkey;
            Singleton.Instance._currentkey  = Keyboard.GetState();

            Singleton.Instance._previousmouse = Singleton.Instance._currentmouse;
            Singleton.Instance._currentmouse  = Mouse.GetState();
            //Mouse and Keyboard Detect
            if (Singleton.Instance._currentmouse.Position != Singleton.Instance._previousmouse.Position || Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed || !Singleton.Instance.isKeyboardCursorActive)
            {
                Singleton.Instance.isMouseActive          = true;
                Singleton.Instance.isKeyboardCursorActive = false;
            }
            else
            {
                Singleton.Instance.isMouseActive = false;
            }
            //End Mouse and Keyboard Detect

            //Start skill1-3 button loop
            for (int i = 0; i < skill_button_poslist.Count; i++)
            {
                if (Singleton.Instance._currentmouse.Position.X > skill_button_poslist[i].X - _skillwindow.Width / 2 &&
                    Singleton.Instance._currentmouse.Position.X <skill_button_poslist[i].X + _skillwindow.Width / 2 &&
                                                                 Singleton.Instance._currentmouse.Position.Y> skill_button_poslist[i].Y - _skillwindow.Height / 2 &&
                    Singleton.Instance._currentmouse.Position.Y < skill_button_poslist[i].Y + _skillwindow.Height / 2 && Singleton.Instance.isMouseActive)
                //skill1-3 button
                {
                    skill_button_scalelist[i]     = new Vector2(1.2f, 1.2f);
                    _addskill_button_scalelist[i] = new Vector2(1.2f, 1.2f);
                    KeyboardCursorPos             = skill_button_poslist[i];
                    keycursorstate           = Keycursorstate.Skill;
                    keyboardCursorPosCounter = i;

                    //Start to do play selection cursor sound
                    cursorselectionPlayedcount++;
                    if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                    {
                        _cursorselection.Play();
                        iscursorselectionPlayed = true;
                    }
                    //End to do play selection cursor sound

                    if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                    {
                        _addskill_button_scalelist[i] = new Vector2(1.1f, 1.1f);
                    }
                    else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                    {
                        //Do when click skill3 button
                        SkillCommandList(i);
                    }
                }
                else
                {
                    skill_button_scalelist[i]     = Vector2.One;
                    _addskill_button_scalelist[i] = Vector2.One;
                    //Check cursor sound played
                    cursorselectionPlayedcount--;
                    if (cursorselectionPlayedcount == 0)
                    {
                        iscursorselectionPlayed = false;
                    }
                    //End check cursor sound played
                }
            }
            //End skill1-3 button loop

            //Start do back, start, Reset skill button loop
            for (int i = 0; i < nav_button_name_list.Count; i++)
            {
                if (Singleton.Instance._currentmouse.Position.X > nav_button_poslist[i].X - _font.MeasureString(nav_button_name_list[i]).X &&
                    Singleton.Instance._currentmouse.Position.X <nav_button_poslist[i].X + _font.MeasureString(nav_button_name_list[i]).X &&
                                                                 Singleton.Instance._currentmouse.Position.Y> nav_button_poslist[i].Y - _font.MeasureString(nav_button_name_list[i]).Y &&
                    Singleton.Instance._currentmouse.Position.Y < nav_button_poslist[i].Y + _font.MeasureString(nav_button_name_list[i]).Y&& Singleton.Instance.isMouseActive)

                {
                    KeyboardCursorPos        = nav_button_poslist[i];
                    nav_button_colorlist[i]  = Color.Red;
                    nav_button_scalelist[i]  = new Vector2(1.7f, 1.7f);
                    keycursorstate           = Keycursorstate.Navigation;
                    keyboardCursorPosCounter = skill_button_poslist.Count + i;

                    //Start to do play selection cursor sound
                    cursorselectionPlayedcount++;
                    //_cursorselection.IsLooped = false;
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                    if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                    {
                        _cursorselection.Play();
                        iscursorselectionPlayed = true;
                    }
                    //End to do play selection cursor sound

                    if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                    {
                        nav_button_colorlist[i] = Color.OrangeRed;
                        nav_button_scalelist[i] = new Vector2(1.6f, 1.6f);
                    }
                    else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                    {
                        nav_button_colorlist[i] = Color.Red;
                        //Do when click Reset skill button
                        NavCommandList(i);
                    }
                }
                else
                {
                    nav_button_colorlist[i] = Color.White;
                    nav_button_scalelist[i] = new Vector2(1.5f, 1.5f);
                    //Check cursor sound played
                    cursorselectionPlayedcount--;
                    if (cursorselectionPlayedcount == 0)
                    {
                        iscursorselectionPlayed = false;
                    }
                    //End check cursor sound played
                }
            }
            //End do back, start, Reset skill button loop

            for (int i = 0; i < _gameObjects.Count; i++)
            {
                _gameObjects[i].Update(gameTime, _gameObjects);
            }
        }
Esempio n. 5
0
        public void HandleInput(GameTime gameTime)
        {
            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Escape) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Right) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter++;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (keyboardCursorPosCounter > _gameObjects.Count - 1)
                    {
                        keyboardCursorPosCounter = 0;
                    }
                    KeyboardCursorPos = _gameObjects[keyboardCursorPosCounter].Position;

                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter >= nav_button_poslist.Count + _gameObjects.Count - 1)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];

                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Left) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter--;
                }

                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (keyboardCursorPosCounter < 0)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count - 1;
                    }
                    KeyboardCursorPos = _gameObjects[keyboardCursorPosCounter].Position;

                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound

                    /*                        Console.WriteLine("Skill Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter < _gameObjects.Count)
                    {
                        keyboardCursorPosCounter = nav_button_poslist.Count + _gameObjects.Count - 1;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];

                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Down) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = _gameObjects[keyboardCursorPosCounter].Position;
                        keycursorstate           = Keycursorstate.Charater;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Up) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = _gameObjects[keyboardCursorPosCounter].Position;
                        keycursorstate           = Keycursorstate.Charater;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Enter) && Singleton.Instance._currentkey != Singleton.Instance._previouskey && Singleton.Instance.isKeyboardCursorActive)
            {
                switch (keyboardCursorPosCounter)
                {
                case 0:
                    Singleton.Instance.CurrentHero = "zeus";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;

                case 1:
                    Singleton.Instance.CurrentHero = "thor";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;

                case 2:
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;
                }
            }
        }