// Use this for initialization void Start() { index = 0; gameController = FindObjectOfType <GameController>(); tCPReceiver = gameController.tCPReceiver; tCPSender = gameController.tCPSender; //SendClientId(); }
/// <summary> /// Инкапсулирует GameController. Расшифровывает сообщения с TCP-сервера и передает их игре /// </summary> public ClientGameAdapter() { Game = new ClientGameController(); Sender = new TCPSender(8010); Receiver = new TCPReceiver(8020); // При выполнении пользовательских действий в игре отправляется TCP-сообщение серверу (Game as ClientGameController).GameEvent += Send; // На случай появления команд от клиента, запускаем поток, слушающий TCP-сообщения listener = new Thread(Listen); listener.Start(); listener.IsBackground = false; }
/// <summary> /// Отвечает за взаимодействие по TCP игрового движка с клиентом /// </summary> public ServerGameAdapter() { Game = new ServerGameEngine(); Sender = new TCPSender(8020); Receiver = new TCPReceiver(8010); // На случай появления команд от клиента, запускаем поток, слушающий TCP-сообщения listener = new Thread(Listen); listener.Start(); listener.IsBackground = false; // При появлении внутриигровых событий, влияющих на интерфейс, генерируется единое событие GameEvent... Game.ChangeHpEvent += (object sender, ChangeHpEventArgs args) => GameEvent?.Invoke(this, new GameEventArgs(new ChangeHpCommand(args.Hp_new))); Game.LoseEvent += Stop; Game.RiseNewEvent += (object sender, RiseNewEventArgs args) => GameEvent?.Invoke(this, new GameEventArgs(new RiseNewCommand(args.Places))); Game.RiseProgressEvent += (object sender, RiseProgressEventArgs args) => GameEvent?.Invoke(this, new GameEventArgs(new RiseProgressCommand(args.Place, args.Stage_new))); // ... которое затем отправляется клиенту GameEvent += Send; }
private void AddReceiverThread() { receiver = new TCPReceiver(client, this); worker = new Thread(new ThreadStart(receiver.Start)); worker.Start(); }
// Use this for initialization void Start() { DontDestroyOnLoad(gameObject); tCPSender = GetComponent <TCPSender>(); tCPReceiver = GetComponent <TCPReceiver>(); }