/// <summary> /// Notica a las demas cuentas que el corredor puede comer perseguidores /// </summary> public void NotificarCorredorPuedeComerJugadores() { EventoEnJuego CorredorPuedeComerCorredores = new EventoEnJuego(); CorredorPuedeComerCorredores.SeInicioTiempoDeMatar(CuentaEnSesion.NombreUsuario, IdDeMiSala); UdpSender EnviadorDePauetesUdp = new UdpSender(DireccionIpDelServidor, PUERTO_ENVIO_UDP1, PUERTO_ENVIO_UDP2); EnviadorDePauetesUdp.EnviarPaquete(CorredorPuedeComerCorredores); }
/// <summary> /// Notifica a los demas jugadores que el jugador mato a otro /// </summary> /// <param name="nombreUsuario">String</param> /// <param name="NumeroVidas">String</param> public void NotificarMuerteJugador(String nombreUsuario, int NumeroVidas) { EventoEnJuego MuerteDeJugador = new EventoEnJuego(); MuerteDeJugador.EventoEnJuegoMuerteJugador(CuentaEnSesion.NombreUsuario, IdDeMiSala, nombreUsuario, NumeroVidas); UdpSender EnviadorDePaquetesUDP = new UdpSender(DireccionIpDelServidor, PUERTO_ENVIO_UDP1, PUERTO_ENVIO_UDP2); EnviadorDePaquetesUDP.EnviarPaquete(MuerteDeJugador); }
/// <summary> /// Envia a las demas cuentas el movimiento realizado por el jugador /// </summary> /// <param name="x">float</param> /// <param name="y">float</param> /// <param name="movimientoX">float</param> /// <param name="movimientoY">float</param> public void EnviarMovimiento(float x, float y, float movimientoX, float movimientoY) { EventoEnJuego eventoEnJuego = new EventoEnJuego(); eventoEnJuego.EventoEnJuegoMovimientoJugador(CuentaEnSesion.NombreUsuario, IdDeMiSala, CuentaEnSesion.NombreUsuario, x, y, movimientoX, movimientoY); UdpSender enviadorDePaquetesUDP = new UdpSender(DireccionIpDelServidor, PUERTO_ENVIO_UDP1, PUERTO_ENVIO_UDP2); enviadorDePaquetesUDP.EnviarPaquete(eventoEnJuego); }
public static EventoEnJuego Deserializar(byte[] byteArray) { if (byteArray == null) { return(null); } BinaryFormatter FormateadorBinario = new BinaryFormatter(); using (MemoryStream StreamDeMemoria = new MemoryStream()) { StreamDeMemoria.Write(byteArray, 0, byteArray.Length); StreamDeMemoria.Seek(0, SeekOrigin.Begin); EventoEnJuego eventoEnJuego = (EventoEnJuego)FormateadorBinario.Deserialize(StreamDeMemoria); return(eventoEnJuego); } }
public void RecibirDatos() { try { ClienteUDP = new UdpClient(PuertoEscucha1); } catch (SocketException) { ClienteUDP = new UdpClient(PuertoEscucha2); } while (true) { IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); byte[] data = ClienteUDP.Receive(ref anyIP); if (data != null && data.Length > 0) { EventoEnJuego eventoEnJuego = Deserializar(data); EventoRecibido?.Invoke(eventoEnJuego); } } }
/// <summary> /// Lanza notificaciones dependiendo del tipo de eventoEnJuego /// </summary> /// <param name="eventoEnJuego">EventoEnJuego</param> private void RecibirEventoEnElJuego(EventoEnJuego eventoEnJuego) { if (eventoEnJuego.IdSala == IdDeMiSala) { switch (eventoEnJuego.TipoDeEvento) { case EnumTipoDeEventoEnJuego.IniciarCuentaRegresivaInicioJuego: IniciaLaPartida?.Invoke(eventoEnJuego.DatosInicioDePartida); break; case EnumTipoDeEventoEnJuego.IniciarPartida: IniciaLaPartida?.Invoke(eventoEnJuego.DatosInicioDePartida); break; case EnumTipoDeEventoEnJuego.MuerteJugador: if (eventoEnJuego.CuentaRemitente != CuentaEnSesion.NombreUsuario) { SeMurioUnJugador?.Invoke(eventoEnJuego.DatosMuerteDeUnJugador); } break; case EnumTipoDeEventoEnJuego.MovimientoJugador: if (eventoEnJuego.CuentaRemitente != CuentaEnSesion.NombreUsuario) { SeMovioUnJugador?.Invoke(eventoEnJuego.DatosDelMovimiento); } break; case EnumTipoDeEventoEnJuego.IniciaTiempoMatar: if (eventoEnJuego.CuentaRemitente != CuentaEnSesion.NombreUsuario) { SeActivoElTiempoParaComer?.Invoke(); } break; } } }