Пример #1
0
    Labr GetLabr(int LabrSize)
    {
        byte[] data = new byte[LabrSize];

        reader.Read(data, 0, LabrSize);

        Labr result = Serializator.ByteArrayToObject(data) as Labr;

        return(result);
    }
Пример #2
0
    public void Init(TcpClient client, bool isHost)
    {
        this.client = client;
        this.isHost = isHost;
        stream      = this.client.GetStream();
        writer      = new BinaryWriter(stream);
        reader      = new BinaryReader(stream);

        keys        = new List <char>();
        playerDoors = new List <char>();
        OpenedDoors = new List <char>();

        enemyKeys  = new List <Point>();
        enemyDoors = new List <Point>();

        OpenedDoor = 'Q';
        PickedKey  = 'q';

        realSizeX = MultiplayerConfig.Width;
        realSizeY = MultiplayerConfig.Height;

        if (isHost)
        {
            labr = new Labr();

            Debug.Log(realSizeX);
            Debug.Log(realSizeY);

            fieldManager.InitField(realSizeX, realSizeY, this);

            labr.maze    = fieldManager.maze;
            labr.start_x = fieldManager.startX;
            labr.start_y = fieldManager.startY;

            byte[] array = ConvertToByteArray(labr);
            LabrSize = array.Length;
            Debug.Log(LabrSize);
            writer.Write(LabrSize);

            yourName = MultiplayerConfig.Name;

            writer.Write(array, 0, array.Length);
        }
        else
        {
            yourName = MultiplayerConfig.Name;

            LabrSize = reader.ReadInt32();
            Debug.Log(LabrSize);
            labr      = GetLabr(LabrSize);
            realSizeX = labr.maze[0].Count;
            realSizeY = labr.maze.Count;
        }

        maze = labr.maze;

        palyerCurrentX = labr.start_x + 1.5f;
        palyerCurrentY = labr.start_y + 1.5f;

        enemyCurrentX = labr.start_x + 1.5f;
        enemyCurrentY = labr.start_y + 1.5f;

        fieldManager.DisplayMaze(labr.maze, realSizeX, realSizeY);

        if (yourName != null)
        {
            writer.Write(yourName);
        }

        enemyName = reader.ReadString();


        player.GetComponent <Transform>().position = new Vector3(palyerCurrentX, palyerCurrentY, 0);

        enemy.GetComponent <Transform>().position = new Vector3(enemyCurrentX, enemyCurrentY, 0);

        Thread thread = new Thread(new ThreadStart(receiveMessage));

        thread.Start();

        uiManager.SetNames(yourName, enemyName);
    }
Пример #3
0
 byte[] ConvertToByteArray(Labr labr)
 {
     byte[] data = Serializator.ObjectToByteArray(labr);
     return(data);
 }