示例#1
0
        private void websocket_MessageReceived(object sender, EventArgs e)
        {
            string  value = ((WebSocket4Net.MessageReceivedEventArgs)e).Message;
            dynamic d     = JObject.Parse(value);

            if (d.Type == (new WhatDoWeDoNow.JSON.GameObjectPositionChange()).Type)
            {
                WhatDoWeDoNow.JSON.GameObjectPositionChange obj = JsonConvert.DeserializeObject <WhatDoWeDoNow.JSON.GameObjectPositionChange>(value);

                Microsoft.Xna.Framework.Vector2 pos = new Microsoft.Xna.Framework.Vector2((float)obj.X, (float)obj.Y);
                //TheGame.Instance.player1.setPos(pos);
                //TheGame.Instance.gameObjects[obj.Id].setPos(pos);
                GameObject gobj = TheGame.Instance.gameObjects.GetById(obj.Id);
                if (gobj != null)
                {
                    if (TheGame.Instance.distanceBetweenPoints(gobj.getPos(), pos) > 20)
                    {
                        gobj.setPos(pos);
                        Console.WriteLine("Distance corrected!");
                    }
                }
            }
            if (d.Type == (new WhatDoWeDoNow.JSON.GameObject()).Type)
            {
                WhatDoWeDoNow.JSON.GameObject obj = JsonConvert.DeserializeObject <WhatDoWeDoNow.JSON.GameObject>(value);

                TheGame.Instance.gameObjects.Add(obj.Id, GameObjectFactory.get(obj));
            }
            if (d.Type == (new WhatDoWeDoNow.JSON.GameObjectYouAre()).Type)
            {
                WhatDoWeDoNow.JSON.GameObjectYouAre obj = JsonConvert.DeserializeObject <WhatDoWeDoNow.JSON.GameObjectYouAre>(value);

                //TheGame.Instance.playerMe = (PlayerMe)TheGame.Instance.gameObjects.GetById(obj.Id);
                createPlayerMeAndTransformIt(obj.Id);
            }
        }
        private void appServer_NewMessageReceived(GameWebsocketSession session, string value)
        {
            dynamic d = JObject.Parse(value);

            Console.WriteLine("Received #" + messagesReceived + " received and type is: " + d.Type);
            ++messagesReceived;

            if (d.Type == (new WhatDoWeDoNow.JSON.GameObjectPositionChange()).Type)
            {
                WhatDoWeDoNow.JSON.GameObjectPositionChange obj = JsonConvert.DeserializeObject <WhatDoWeDoNow.JSON.GameObjectPositionChange>(value);

                foreach (GameWebsocketSession session2 in appServer.GetAllSessions())
                {
                    if (session == session2)
                    {
                        continue;
                    }

                    session2.Send(value);
                }
            }
            if (d.Type == (new WhatDoWeDoNow.JSON.PlayerChange("bla")).Type)
            {
                WhatDoWeDoNow.JSON.PlayerChange obj = JsonConvert.DeserializeObject <WhatDoWeDoNow.JSON.PlayerChange>(value);

                //apply it on user
                if (obj.Change == "Down")
                {
                    session.Player.playerDownCommand();
                }
                if (obj.Change == "DownEnd")
                {
                    session.Player.playerDownCommandEnd();
                }
                if (obj.Change == "Up")
                {
                    session.Player.playerUpCommand();
                }
                if (obj.Change == "UpEnd")
                {
                    session.Player.playerUpCommandEnd();
                }
                if (obj.Change == "Left")
                {
                    session.Player.playerLeftCommand();
                }
                if (obj.Change == "LeftEnd")
                {
                    session.Player.playerLeftCommandEnd();
                }
                if (obj.Change == "Right")
                {
                    session.Player.playerRightCommand();
                }
                if (obj.Change == "RightEnd")
                {
                    session.Player.playerRightCommandEnd();
                }
                if (obj.Change == "Jump")
                {
                    session.Player.playerJumpCommand();
                }
                if (obj.Change == "JumpEnd")
                {
                    session.Player.playerJumpCommandEnd();
                }
            }
        }