예제 #1
0
 /// <summary>
 /// 设置球员串
 /// </summary>
 /// <returns></returns>
 public string SetPlayerString()
 {
     PlayerString = "";
     foreach (var i in PlayerList)
     {
         PlayerString += i + ",";
     }
     PlayerString = PlayerString.Substring(0, PlayerString.Length - 1);
     return(PlayerString);
 }
예제 #2
0
 public void SetPlayerList()
 {
     _playerList = new List <int>();
     if (PlayerString.Length > 0)
     {
         var p = PlayerString.Split(',');
         foreach (var s in p)
         {
             var playerId = ConvertHelper.ConvertToInt(s);
             _playerList.Add(playerId);
         }
     }
 }
예제 #3
0
        public Level(ContentManager GameContent, Game game, string LevelNameString, string LevelDirectory, string[] PlayerStrings, bool AllWeaponEnabled)
        {
            LevelName      = LevelNameString;
            EnabledWeapons = AllWeaponEnabled;

            Content = GameContent;
            Console.WriteLine("Initializing level");

            game.MainWindow.MouseEventButtonDownLeft  += new GameWindow.MouseEventHandler(PlayerManager.MouseClickDownLeft);
            game.MainWindow.MouseEventButtonUpLeft    += new GameWindow.MouseEventHandler(PlayerManager.MouseClickUpLeft);
            game.MainWindow.MouseEventButtonDownRight += new GameWindow.MouseEventHandler(PlayerManager.MouseClickDownRight);
            game.MainWindow.MouseEventButtonUpRight   += new GameWindow.MouseEventHandler(PlayerManager.MouseClickUpRight);
            game.MainWindow.MouseEventWheelUp         += new GameWindow.MouseEventHandler(PlayerManager.MouseWheelUp);
            game.MainWindow.MouseEventWheelDown       += new GameWindow.MouseEventHandler(PlayerManager.MouseWheelDown);

            ResourceManager.LoadResources(Content);
            LoadConfiguration(Path.Combine(LevelDirectory, LevelNameString));

            using (FileStream fileStream = new FileStream(Path.Combine(new string[] { LevelDirectory, LevelNameString, "Level" }) + ".png", FileMode.Open))
            {
                Ground = Texture2D.FromStream(game.GraphicsDevice, fileStream);
            }
            GroundData = new Color[Ground.Width * Ground.Height];
            Ground.GetData <Color>(GroundData);


            PlayerManager.Level = this;

            // Parse players
            foreach (var PlayerString in PlayerStrings)
            {
                if (string.IsNullOrEmpty(PlayerString))
                {
                    continue;
                }

                Player NewPlayer = new Player(PlayerManager);
                NewPlayer.Type = Player.PlayerType.Local;
                string[] Params = PlayerString.Substring(PlayerString.IndexOf('(') + 1, PlayerString.IndexOf(')') - PlayerString.IndexOf('(') - 1).Split(';');
                foreach (var Param in Params)
                {
                    if (Param.StartsWith("name="))
                    {
                        NewPlayer.Name = Param.Substring(Param.IndexOf('=') + 1);
                    }
                    else if (Param.StartsWith("color="))
                    {
                        string[] ColorString = Param.Substring(Param.IndexOf('=') + 1).Split(',');
                        NewPlayer.Color = new Microsoft.Xna.Framework.Color(int.Parse(ColorString[0]), int.Parse(ColorString[1]), int.Parse(ColorString[2]));
                    }
                    else if (Param.StartsWith("mouse="))
                    {
                        IntPtr MouseHandle = (IntPtr)int.Parse(Param.Substring(Param.IndexOf('=') + 1));

                        NewPlayer.LocalMouse = GameWindow.Instance.Mouses[MouseHandle];
                    }
                    else if (Param.StartsWith("keyboard="))
                    {
                        string KeyString = Param.Substring(Param.IndexOf('=') + 1);
                        if (KeyString.StartsWith("W"))
                        {
                            NewPlayer.LocalMoveLeft  = Keys.A;
                            NewPlayer.LocalMoveRight = Keys.D;
                            NewPlayer.LocalJump      = Keys.W;
                            NewPlayer.LocalShoot     = Keys.R;
                        }
                        else if (KeyString.StartsWith("Up"))
                        {
                            NewPlayer.LocalMoveLeft  = Keys.Left;
                            NewPlayer.LocalMoveRight = Keys.Right;
                            NewPlayer.LocalJump      = Keys.Up;
                            NewPlayer.LocalShoot     = Keys.Down;
                        }
                    }
                    else if (Param.StartsWith("weapons="))
                    {
                        // NYI
                    }
                }

                PlayerManager.AddPlayer(NewPlayer);
            }
        }