/// <summary> /// 根据左侧菜单栏显示右侧内容 /// </summary> /// <param name="num"></param> private void ShowRightWindow(int num) { switch (num) { case 0: GlobalRight.Navigate(MonsterData.GetInstance()); break; case 1: GlobalRight.Navigate(AbilityIntroduction.GetInstance()); break; case 2: SaveData.Save("Save1"); break; case 3: LoadData.Load("Save1"); break; } }
/// <summary> /// 给窗口添加键盘事件,当楼层初始化后进行处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DirectionKeyDown(object sender, KeyEventArgs e) { if (!FloorFactory.GetInstance().IsInitialize()) { return; } //对话界面 if (hero.IsTalking) { if (e.Key == Key.Space || e.Key == Key.Enter) { hero.NPC.NextText(); } return; } // 游戏界面中 if (!isMenuOpened) { //英雄移动和菜单项开关 switch (e.Key) { case Key.Up: hero.MoveUp(); break; case Key.Down: hero.MoveDown(); break; case Key.Left: hero.MoveLeft(); break; case Key.Right: hero.MoveRight(); break; case Key.Escape: isMenuOpened = true; GlobalLeft.Navigate(MenuLeft.GetInstance()); GlobalRight.Navigate(MonsterData.GetInstance()); MonsterData.GetInstance().ShowContentItem(); break; } } else { //菜单栏监听 double itemTop = Canvas.GetTop(MenuLeft.ToggleCanvas); switch (e.Key) { case Key.Down: if (itemTop == 257) { Canvas.SetTop(MenuLeft.ToggleCanvas, 7); itemNum = 0; } else { Canvas.SetTop(MenuLeft.ToggleCanvas, Canvas.GetTop(MenuLeft.ToggleCanvas) + 50); itemNum++; } ShowRightWindow(itemNum); break; case Key.Up: if (itemTop == 7) { Canvas.SetTop(MenuLeft.ToggleCanvas, 257); itemNum = 5; } else { Canvas.SetTop(MenuLeft.ToggleCanvas, Canvas.GetTop(MenuLeft.ToggleCanvas) - 50); itemNum--; } ShowRightWindow(itemNum); break; case Key.Escape: isMenuOpened = false; GlobalLeft.Navigate(State.GetInstance()); GlobalRight.Navigate(FloorFactory.GetInstance()); Canvas.SetTop(MenuLeft.ToggleCanvas, 7); MonsterData.GetInstance().ContentItem.Children.Clear(); itemNum = 0; break; } } }