Exemple #1
0
        public bool Initialize(GameMain gameMain, out string reason)
        {
            _gameMain = gameMain;
            _title = SpriteManager.GetSprite("Title", _gameMain.Random);
            if (_title == null)
            {
                reason = "Title Sprite not found";
                return false;
            }

            _singlePlayerButton = new BBButton();
            _multiPlayerButton = new BBButton();
            _exitButton = new BBButton();

            _hostOrConnectButton = new BBButton();
            _cancelButton = new BBButton();
            _ipAddressTextBox = new BBSingleLineTextBox();
            _playerNameTextBox = new BBSingleLineTextBox();
            _debugText = new BBLabel();

            _showingMultiplayerOptions = false;

            int x = _gameMain.ScreenSize.X / 2 - 130;
            int y = _gameMain.ScreenSize.Y / 2 + 50;

            if (!_singlePlayerButton.Initialize("MainButtonBG", "MainButtonFG", "Single Player", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 50, 260, 40, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_multiPlayerButton.Initialize("MainButtonBG", "MainButtonFG", "MultiPlayer", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 100, 260, 40, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_exitButton.Initialize("MainButtonBG", "MainButtonFG", "Exit", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 200, 260, 40, _gameMain.Random, out reason))
            {
                return false;
            }

            if (!_playerNameTextBox.Initialize("Player Name", x, y, 260, 40, false, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_ipAddressTextBox.Initialize(string.Empty, x - 150, y + 50, 260, 40, false, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_hostOrConnectButton.Initialize("MainButtonBG", "MainButtonFG", "Host", "LargeComputerFont", ButtonTextAlignment.CENTER, x + 150, y + 50, 260, 40, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_cancelButton.Initialize("MainButtonBG", "MainButtonFG", "Back", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 100, 260, 40, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_debugText.Initialize(10, _gameMain.ScreenSize.Y - 30, string.Empty, Color.White, out reason))
            {
                return false;
            }
            _singlePlayerButton.SetTextColor(Color.Gold, Color.Black);
            _multiPlayerButton.SetTextColor(Color.Gold, Color.Black);
            _exitButton.SetTextColor(Color.Gold, Color.Black);
            _hostOrConnectButton.SetTextColor(Color.Gold, Color.Black);
            _cancelButton.SetTextColor(Color.Gold, Color.Black);

            _gameMain.LevelNumber = 100;
            _gameMain.SetupLevel();
            _debugText.SetText("Num of Asteroids: " + _gameMain.AsteroidManager.Asteroids.Count);

            reason = null;
            return true;
        }