예제 #1
0
파일: Game_Main.cs 프로젝트: virucho/UDDMG
        private void ConfigServer(int Port)
        {


            // Create a network object for Control the Car
            CtrlCarNetworkObj = new ControlCarNetworkObject();

            // Callback funtion for the Network obj "ControlCarCall"
            CtrlCarNetworkObj.CallbackFunc = ControlCarCall;

            // Create a network handler for handling the network transfers
            INetworkHandler networkHandler = new SocketNetworkHandler();

            //Creo El Servidor
            IServer server = null;

            //server
            server = new SocketServer(Port);

            //Numero de Clientes a esperar antes de la simulacion fisica
            State.NumberOfClientsToWait = 0;

            //Agrego CallBacks
            server.ClientConnected += new HandleClientConnection(ClientConnected);
            server.ClientDisconnected += new HandleClientDisconnection(ClientDisconnected);
            networkHandler.NetworkServer = server;

            // Assign the network handler used for this scene
            scene.NetworkHandler = networkHandler;

            // Add the ControlCar network object to the scene.
            scene.NetworkHandler.AddNetworkObject(CtrlCarNetworkObj);
        }
예제 #2
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
#if WINDOWS
            this.IsMouseVisible = true;
#endif

            // Initialize the GoblinXNA framework
            State.InitGoblin(graphics, Content, "");

            // Initialize the scene graph
            scene = new Scene();

            State.EnableNetworking = true;
            State.IsServer = isServer;

            State.ShowNotifications = true;
            State.ShowFPS = true;
            Notifier.FadeOutTime = 2000;

            // Set up the lights used in the scene
            CreateLights();

            // Set up the camera, which defines the eye location and viewing frustum
            CreateCamera();

            // Create 3D objects
            CreateObject();

            // Create a network object that contains mouse press information to be
            // transmitted over network
            mouseNetworkObj = new MouseNetworkObject();

            // When a mouse press event is sent from the other side, then call "ShootBox"
            // function
            mouseNetworkObj.CallbackFunc = ShootBox;

            // Create a network handler for handling the network transfers
            INetworkHandler networkHandler = null;

#if USE_SOCKET_NETWORK || WINDOWS_PHONE
            networkHandler = new SocketNetworkHandler();
#else
            networkHandler = new NetworkHandler();
#endif

            if (State.IsServer)
            {
                IServer server = null;
#if WINDOWS
#if USE_SOCKET_NETWORK
                server = new SocketServer(14242);
#else
                server = new LidgrenServer("Tutorial10", 14242);
#endif
                State.NumberOfClientsToWait = 1;
                scene.PhysicsEngine = new NewtonPhysics();
#else

                scene.PhysicsEngine = new MataliPhysics();
                ((MataliPhysics)scene.PhysicsEngine).SimulationTimeStep = 1 / 30f;
#endif
                scene.PhysicsEngine.Gravity = 30;
                server.ClientConnected += new HandleClientConnection(ClientConnected);
                server.ClientDisconnected += new HandleClientDisconnection(ClientDisconnected);
                networkHandler.NetworkServer = server;
            }
            else
            {
                IClient client = null;
                // Create a client that connects to the local machine assuming that both
                // the server and client will be running on the same machine. In order to 
                // connect to a remote machine, you need to either pass the host name or
                // the IP address of the remote machine in the 3rd parameter. 
#if WINDOWS
                client = new LidgrenClient("Tutorial10", 14242, "Localhost");
#else
                client = new SocketClient("10.0.0.2", 14242);
#endif

                // If the server is not running when client is started, then wait for the
                // server to start up.
                client.WaitForServer = true;
                client.ConnectionTrialTimeOut = 60 * 1000; // 1 minute timeout

                client.ServerConnected += new HandleServerConnection(ServerConnected);
                client.ServerDisconnected += new HandleServerDisconnection(ServerDisconnected);

                networkHandler.NetworkClient = client;
            }

            // Assign the network handler used for this scene
            scene.NetworkHandler = networkHandler;

            // Add the mouse network object to the scene graph, so it'll be sent over network
            // whenever ReadyToSend is set to true.
            scene.NetworkHandler.AddNetworkObject(mouseNetworkObj);

            MouseInput.Instance.MousePressEvent += new HandleMousePress(MouseInput_MousePressEvent);
        }