public override Packet Deserialize(byte[] buffer)
        {
            using (var stream = new MemoryStream(buffer, 1, buffer.Length - 1))
            {
                using (var binaryReader = new BinaryReader(stream))
                {
                    PacketSequenceNumber = binaryReader.ReadInt32();
                    ClientId             = binaryReader.ReadInt32();
                    Direction            = (PlayerMovementDirectionEnum)binaryReader.ReadByte();

                    return(this);
                }
            }
        }
Exemple #2
0
        public void MovePlayer(int clientId, int packetSequenceNumber, PlayerMovementDirectionEnum direction)
        {
            var playerState = _lastWorldState.PlayersStates.FirstOrDefault(p => p.Id == clientId);

            if (playerState == null)
            {
                return;
            }

            playerState.LastPacketSequenceNumber = packetSequenceNumber;

            switch (direction)
            {
            case PlayerMovementDirectionEnum.Up:

                playerState.Y += playerState.Speed;
                break;

            case PlayerMovementDirectionEnum.Down:

                playerState.Y += -playerState.Speed;
                break;

            case PlayerMovementDirectionEnum.Right:

                playerState.X += playerState.Speed;
                break;

            case PlayerMovementDirectionEnum.Left:

                playerState.X += -playerState.Speed;
                break;

            default:
                break;
            }

            //Log.Info($"Player with {playerState.Id} id position x: {playerState.X}, y: {playerState.Y}, Pakcet num: {playerState.LastPacketSequenceNumber}");
        }