예제 #1
0
        /// <summary>
        /// Send a message containing the current DateTime to the chanel "PING" to test the viability of the socket
        /// </summary>
        public void Ping()
        {
            SimpleObjectFormater objectToSend = new SimpleObjectFormater();

            objectToSend.AddString("time", DateTime.Now.TimeOfDay.ToString());
            Emit("PING", objectToSend.JSONFormat());
        }
예제 #2
0
        /// <summary>
        /// Starts players detection and connect the game to the backend
        /// </summary>
        public void StartCapture()
        {
            socketIO.Connect();
            socketIO.On("kinectStartRun", StartRun);
            socketIO.On("gameFinished", FinishRun);
            socketIO.On("kinectRestart", StartNewGame);
            if (logMode)
            {
                log.Info(Step.ToString() + " : Open socket - Start Capture");
            }

            SimpleObjectFormater objectToSend = new SimpleObjectFormater();

            objectToSend.AddString("state", kinectMotor.Status);
            socketIO.Emit("kinectConnected", objectToSend.JSONFormat());
        }
예제 #3
0
        /// <summary>
        /// Send all players who jumped to the backend
        /// </summary>
        /// <param name="jumpers">List containing jumpers id</param>
        /// <remarks>
        /// Gameplay method : You shouldn't call it manually.
        /// </remarks>
        public void SendJumpers(List <int> jumpers)
        {
            foreach (int jumperId in jumpers)
            {
                SimpleObjectFormater objectToSend = new SimpleObjectFormater();
                objectToSend.AddInt("playerId", jumperId);
                socketIO.Emit("kinectPlayerJump", objectToSend.JSONFormat());

                if (logMode)
                {
                    log.Info(Step.ToString() + " : Player " + jumperId + " has jumped");
                }

                players[jumperId - 1].ValidateJump(DateTime.Now);
            }
        }
예제 #4
0
        /// <summary>
        /// Send the current players to the backend
        /// </summary>
        /// <remarks>
        /// Gameplay method : You shouldn't call it manually.
        /// </remarks>
        public void SendPlayers()
        {
            SimpleObjectFormater objectToSend = new SimpleObjectFormater();
            SimpleArray          playersArray = new SimpleArray();

            foreach (Player player in players)
            {
                if (player.IsDefined())
                {
                    SimpleObjectFormater playerObjectToSend = new SimpleObjectFormater();
                    playerObjectToSend.AddInt("id", player.PlayerId);
                    playerObjectToSend.AddInt("state", (int)player.State);
                    playersArray.AddMember(playerObjectToSend);
                }
            }
            objectToSend.AddArray("players", playersArray);
            if (logMode)
            {
                log.Info(Step.ToString() + " : Send available players = " + objectToSend.JSONFormat());
            }

            socketIO.Emit("players", objectToSend.JSONFormat());
        }
예제 #5
0
        /// <summary>
        /// Send all players speed to the backend
        /// </summary>
        /// <remarks>
        /// Gameplay method : You shouldn't call it manually.
        /// </remarks>
        public void SendSpeed()
        {
            SimpleObjectFormater objectToSend = new SimpleObjectFormater();
            SimpleArray          playersArray = new SimpleArray();

            foreach (Player player in players)
            {
                if (player.IsDefined())
                {
                    SimpleObjectFormater playerObjectToSend = new SimpleObjectFormater();
                    playerObjectToSend.AddInt("id", player.PlayerId);
                    playerObjectToSend.AddFloat("speed", player.Speed.value);
                    playersArray.AddMember(playerObjectToSend);
                }
            }

            objectToSend.AddArray("players", playersArray);
            if (logMode)
            {
                log.Info(Step.ToString() + " : Send players speed = " + objectToSend.JSONFormat());
            }

            socketIO.Emit("kinectPlayerSpeed", objectToSend.JSONFormat());
        }