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; }
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; } } }
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); } }
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); } }
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; } } }