Пример #1
0
    /// <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);
    }
Пример #2
0
    /// <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);
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
    /// <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;
            }
        }
    }