Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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;
                }
            }
        }