コード例 #1
0
        public void InitializeGameMode(GameMode gameMode)
        {
            PlayingState ps = GameEnvironment.GameStateManager.GetGameState("playingState") as PlayingState;

            Reset();
            ps.Reset();
            ps.CurrentGameMode = gameMode;
            switch (gameMode)
            {
            case GameMode.MultiplayerClient:
                //Initialize RemoteServer and LocalClient
                LocalClient lc = new LocalClient(server);
                AddClient(lc);
                server = new RemoteServer(lc);
                ps.SetClientAndServer(lc, server);
                break;

            case GameMode.MultiplayerHost:
                //Initialize LocalServer(public) and LocalClient
                server = new LocalServer();
                AddClient(new LocalClient(server));
                ps.SetClientAndServer(clients[0], server);
                tcpListener = new TcpListener(IPAddress.Any, 29793);
                tcpListener.Start();
                AddStartGame();
                break;

            case GameMode.Singleplayer:
                //Initialize LocalServer(private) and LocalClient
                server = new LocalServer();
                AddClient(new LocalClient(server));
                ps.SetClientAndServer(clients[0], server);
                AddStartGame();
                break;

            case GameMode.MultiplayerServer:
                //Initialize LocalServer(public)
                //server = new LocalServer(true);
                break;
            }
        }
コード例 #2
0
        public PlayingMenu() : base(350, 500, true, false)
        {
            SpriteFont sf = GameEnvironment.AssetManager.GetFont("Arial26");

            backButton          = new Button("button", "Main Menu", sf, Color.Black);
            backButton.Position = new Vector2(25, 25);
            backButton.Action   = () =>
            {
                GameEnvironment.GameStateManager.SwitchTo("mainMenuState");
                GameEnvironment.AssetManager.PlayMusic("Sounds/Welcome Screen");
            };
            Add(backButton);

            Vector2 buttonDistance = new Vector2(0, backButton.Sprite.Height + 15);

            restartButton          = new Button("button", "Restart", sf, Color.Black);
            restartButton.Position = backButton.Position + buttonDistance;
            restartButton.Action   = () =>
            {
                GameSetupState gss = GameEnvironment.GameStateManager.GetGameState("gameSetupState") as GameSetupState;
                PlayingState   ps  = GameEnvironment.GameStateManager.GetGameState("playingState") as PlayingState;
                ps.Reset();
                gss.InitializeGameMode(ps.CurrentGameMode);
                GameEnvironment.GameStateManager.SwitchTo("gameSetupState");
            };
            Add(restartButton);

            optionsButton          = new Button("button", "Options", sf, Color.Black);
            optionsButton.Action   = () => { };
            optionsButton.Position = restartButton.Position + buttonDistance;
            Add(optionsButton);

            quitButton          = new Button("button", "Quit", sf, Color.Black);
            quitButton.Position = optionsButton.Position + buttonDistance;
            quitButton.Action   = () =>
            {
                Treehugger.ExitGame();
            };
            Add(quitButton);
        }