Exemplo n.º 1
0
        private void OnPositionChanged(PositionChangedMessage message)
        {
            var id = message.GameObjectId;
            var x  = message.X;
            var y  = message.Y;

            if (entityId == id)
            {
                newPosition = new Vector2(x, y);

                PositionChanged?.Invoke(newPosition);
            }
        }
Exemplo n.º 2
0
        public void PositionChanged()
        {
            PositionChangedMessage message = new PositionChangedMessage();

            message.position = position;
            message.playerId = player.id;

            SocketMessage socketMessage = new SocketMessage();

            socketMessage.type = PositionChangedMessage.TYPE;
            socketMessage.data = JsonConvert.SerializeObject(message);

            game.SendMessage(JsonConvert.SerializeObject(socketMessage));
        }
Exemplo n.º 3
0
        private void OnPositionChanged()
        {
            var id          = gameObjectGetter.Get().Id;
            var transform   = gameObjectGetter.Get().Transform;
            var messageCode = (byte)MessageCodes.PositionChanged;
            var message     = new PositionChangedMessage()
            {
                GameObjectId = id,
                X            = transform.Position.X,
                Y            = transform.Position.Y
            };

            messageSender.SendMessageToNearbyGameObjects(messageCode, message);
        }
Exemplo n.º 4
0
        void ParseMessage(object sender, MessageEventArgs e)
        {
            SocketMessage bsObj = JsonConvert.DeserializeObject <SocketMessage>(e.Data);

            ping = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - bsObj.sendTime;
            switch (bsObj.type)
            {
            case EnemiesDataMessage.TYPE:
                EnemiesDataMessage enemiesData = JsonConvert.DeserializeObject <EnemiesDataMessage>(bsObj.data);
                lock (x)
                {
                    enemies = new List <Enemy>();
                    if (enemiesData.enemiesList != null)
                    {
                        foreach (EnemyDummy dummy in enemiesData.enemiesList)
                        {
                            enemies.Add(Enemy.createFromDummy(dummy));
                        }
                    }
                }
                break;

            case PositionChangedMessage.TYPE:
                PositionChangedMessage positionChange = JsonConvert.DeserializeObject <PositionChangedMessage>(bsObj.data);

                GamePlayer gamePlayer = currentGame.gamePlayers.getPlayer(positionChange.playerId);
                gamePlayer.position = positionChange.position;
                break;

            case PlayerScoreMessage.TYPE:
                PlayerScoreMessage data = JsonConvert.DeserializeObject <PlayerScoreMessage>(bsObj.data);

                currentGame.gamePlayers = data.players;

                break;

            case BulletsDataReceiveMessage.TYPE:
                BulletsDataReceiveMessage bulletsData = JsonConvert.DeserializeObject <BulletsDataReceiveMessage>(bsObj.data);
                lock (bulletLock)
                {
                    bullets = new List <Bullet>();
                    if (bulletsData.bulletList != null)
                    {
                        bullets = bulletsData.bulletList;
                    }
                }
                break;

            case PlayerAngleMessage.TYPE:
                PlayerAngleMessage angleData = JsonConvert.DeserializeObject <PlayerAngleMessage>(bsObj.data);
                angle = angleData.angle;
                break;

            case BestScoreMessage.TYPE:
                BestScoreMessage scoreData = JsonConvert.DeserializeObject <BestScoreMessage>(bsObj.data);
                if (currentGame != null)
                {
                    currentGame.bestScore = scoreData.score;
                }
                break;

            case GoldenToothMessage.TYPE:
                GoldenToothMessage goldenToothData = JsonConvert.DeserializeObject <GoldenToothMessage>(bsObj.data);
                if (goldenTooth == null)
                {
                    goldenTooth = new GoldenTooth();
                }
                goldenTooth.position = goldenToothData.position;
                break;

            case PlayerDataMessage.TYPE:
                PlayerDataMessage playerData = JsonConvert.DeserializeObject <PlayerDataMessage>(bsObj.data);
                if (currentPlayer == null)
                {
                    currentPlayer = new Player(playerData.id, playerData.name);
                }
                break;

            case GameDataMessage.TYPE:
                GameFacade game = JsonConvert.DeserializeObject <GameFacade>(bsObj.data);
                if (currentGame == null)
                {
                    currentGame = new GameFacade();
                }
                currentGame.name = game.name;
                lock (playerLock)
                {
                    if (game.gamePlayers.P1 != null)
                    {
                        currentGame.gamePlayers.P1 = game.gamePlayers.P1;
                        IMoveStrategy strategy = new P1MoveStrategy();
                        currentGame.gamePlayers.P1.moveLeft  = new MoveLeftCommand(strategy, game.gamePlayers.P1.position);
                        currentGame.gamePlayers.P1.moveRight = new MoveRightCommand(strategy, game.gamePlayers.P1.position);
                    }
                    else
                    {
                        currentGame.gamePlayers.P1 = null;
                    }
                    if (game.gamePlayers.P2 != null)
                    {
                        currentGame.gamePlayers.P2 = game.gamePlayers.P2;
                        IMoveStrategy strategy = new P2MoveStrategy();
                        currentGame.gamePlayers.P2.moveLeft  = new MoveLeftCommand(strategy, game.gamePlayers.P2.position);
                        currentGame.gamePlayers.P2.moveRight = new MoveRightCommand(strategy, game.gamePlayers.P2.position);
                    }
                    else
                    {
                        currentGame.gamePlayers.P2 = null;
                    }
                    if (game.gamePlayers.P3 != null)
                    {
                        currentGame.gamePlayers.P3 = game.gamePlayers.P3;
                        IMoveStrategy strategy = new P3MoveStrategy();
                        currentGame.gamePlayers.P3.moveLeft  = new MoveLeftCommand(strategy, game.gamePlayers.P3.position);
                        currentGame.gamePlayers.P3.moveRight = new MoveRightCommand(strategy, game.gamePlayers.P3.position);
                    }
                    else
                    {
                        currentGame.gamePlayers.P3 = null;
                    }
                    if (game.gamePlayers.P4 != null)
                    {
                        currentGame.gamePlayers.P4 = game.gamePlayers.P4;
                        IMoveStrategy strategy = new P4MoveStrategy();
                        currentGame.gamePlayers.P4.moveLeft  = new MoveLeftCommand(strategy, game.gamePlayers.P4.position);
                        currentGame.gamePlayers.P4.moveRight = new MoveRightCommand(strategy, game.gamePlayers.P4.position);
                    }
                    else
                    {
                        currentGame.gamePlayers.P4 = null;
                    }
                }
                break;
            }
        }