예제 #1
0
        private async void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key != Key.Enter)
            {
                return;
            }

            string[] data = Cmd.Text.Split(' ');
            if (data[0].ToLower() == "?focus")
            {
                try {
                    int   x = int.Parse(data[1]);
                    int   y = int.Parse(data[2]);
                    await MapView[x, y].Focus();
                } catch {
                    chat.Text += "\r\nSYSTEM : 指令錯誤";
                }
            }
            else if (data[0].ToLower() == "?move")
            {
                if (Player == null)
                {
                    return;
                }
                try {
                    int x = int.Parse(data[1]);
                    int y = int.Parse(data[2]);
                    MapView.MoveGameObject(ref Player, new MapPosition()
                    {
                        X = x, Y = y
                    });
                }catch {
                    chat.Text += "\r\nSYSTEM : 指令錯誤";
                }
            }
            else if (data[0].ToLower() == "?player")
            {
                try {
                    int x = int.Parse(data[1]);
                    int y = int.Parse(data[2]);

                    MapView.AddGameObject(Player = new GameObject("Shan", new MapPosition()
                    {
                        X = x, Y = y
                    })
                    {
                        Image = new Uri("pack://application:,,,/Texture/Shan_R.png")
                    });

                    MapView.DisplayBlock(new MapPosition()
                    {
                        X = x, Y = y
                    });


                    //this.MapView.ClearScreen();
                    //await this.MapView.DisplayScreen();
                    //await MapView[x, y].Focus();
                } catch {
                    chat.Text += "\r\nSYSTEM : 指令錯誤";
                }
            }
            else if (data[0].ToLower() == "?set")
            {
                try {
                    int x  = int.Parse(data[1]);
                    int y  = int.Parse(data[2]);
                    int x_ = int.Parse(data[3]);
                    int y_ = int.Parse(data[4]);

                    MapView[x_, y_] = MapView[x, y].Clone <MapBlock>();
                    this.MapView.ClearScreen();
                    await this.MapView.DisplayScreen();

                    //await MapView[x, y].Focus();
                } catch {
                    chat.Text += "\r\nSYSTEM : 指令錯誤";
                }
            }
            else if (data[0].ToLower() == "?clear")
            {
                chat.Text = "";
            }
            else if (data[0].ToLower() == "?redisplay")
            {
                MapView.ClearScreen();
                MapView.DisplayScreen();
            }
            else if (data[0].ToLower() == "?help")
            {
                chat.Text += "\r\n<<help>>\r\nfocus\r\nplayer\r\nmove\r\nset\r\nclear\r\nredisplay";
            }
            else
            {
                chat.Text += "\r\nUser : " + Cmd.Text;
            }
            //chat.IsEnabled = false;
            chat.IsEnabled = true;

            chat.Focus();
            chat.ScrollToEnd();
            Cmd.Clear();
            Cmd.Focus();

            chat.IsEnabled = false;
        }