Exemple #1
0
        private void StreamReceived(IAsyncResult ar)//ceci
        {
            int bytesRead = 0;

            try                             //si pas de data à lire
            {
                lock (LeClient.GetStream()) //ep2 4:20
                {
                    bytesRead = LeClient.GetStream().EndRead(ar);
                }
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }

            if (bytesRead == 0)
            {
                LeClient.Close();//Déconnection
                return;
            }

            byte[] data = new byte[bytesRead];

            for (int i = 0; i < bytesRead; i++)
            {
                data[i] = ReadBuffer[i];
            }

            ProcessData(data);

            LeClient.GetStream().BeginRead(ReadBuffer, 0, BufferSize, StreamReceived, null);
        }
Exemple #2
0
        protected override void Update(GameTime gameTime)
        {
            Window.ClientSizeChanged += new EventHandler <EventArgs>(Window_ClientSizeChanged);
            GérerClavier();
            TempsÉcouléDepuisMAJ += (float)gameTime.ElapsedGameTime.TotalSeconds;
            if (TempsÉcouléDepuisMAJ >= INTERVALLE_MAJ_STANDARD)
            {
                if (ModeDeJeu == 1 && NbJoueurConnectés != 2)
                {
                    CoursePeutCommencer = false;
                }
                CaméraJeu.CréerPointDeVue();

                if (CourseActive && !ImageToucheActive && LaCourse != null)
                {
                    Interface.CourseActive = true;
                    GestionOrientationCaméra();//Si course est activée
                }

                TempsÉcouléDepuisMAJ = 0;
            }


            if (MenuActif && !ImageToucheActive && GestionInput.EstEnfoncée(Keys.G))
            {
                MenuActif         = false;
                ImageToucheActive = true;
            }
            if (ImageToucheActive && !CourseActive && GestionInput.EstEnfoncée(Keys.H) && CoursePeutCommencer)
            {
                ImageToucheActive = false;
                //Interface.CourseActive = true;
                CourseActive       = true;
                Carte.CourseActive = true;
                foreach (Voiture x in ListeVoiture)
                {
                    x.CourseActive = true;
                }
                foreach (Sol x in LaCourse.LaPiste)
                {
                    x.CourseActive = true;
                }
                LaCourse.CourseActive = true;
            }


            if (ModeDeJeu == 1)
            {
                LeClient.EnvoiInfoDéplacement(IDVoitureUtilisateur);
                NbJoueurConnectés            = LeClient.NbJoueursConnectés;
                Interface.NbJoueursConnectés = LeClient.NbJoueursConnectés;
                LaCourse.NbFranchis[1]       = LeClient.NbFranchisAdversaire;
            }

            Window.Title = NbJoueurConnectés.ToString() + " - " + MenuActif.ToString();
            //Window.Title = LaCourse.NbFranchis[0].ToString() + " - " + LaCourse.NbFranchis[1].ToString() + " - " + (LaPiste.Count() * NbTours * 2).ToString() + " - " + LaCourse.CourseTerminée.ToString();
            base.Update(gameTime);
        }
Exemple #3
0
 public void SendData(byte[] b)
 {
     //Try to send the data.  If an exception is thrown, disconnect the client
     try
     {
         lock (LeClient.GetStream())
         {
             LeClient.GetStream().BeginWrite(b, 0, b.Length, null, null);
         }
     }
     catch (Exception e)
     {
     }
 }