Exemplo n.º 1
0
 public Pelota(Texture2D textura, Point size)
     : base(textura, size)
 {
     rand           = new Random(DateTime.Now.Second + DateTime.Now.Millisecond);
     posicionActual = posicionInicial = new Vector2(Coordenadas.CentroDeVentana.X, Coordenadas.CentroDeVentana.Y);
     this.size      = new Rectangle((int)posicionInicial.X, (int)posicionInicial.Y,
                                    size.X, size.Y);
     ultimaNotificacion = TipoDeColision.Ninguno;
     DecidirDireccion();
 }
Exemplo n.º 2
0
        public void NotificarColision(TipoDeColision sender)
        {
            if (ultimaNotificacion == sender)
            {
                return;
            }

            switch (sender)
            {
            case TipoDeColision.Pared:
                velocidad.Y       *= -1;
                ultimaNotificacion = TipoDeColision.Pared;
                break;

            case TipoDeColision.Paleta:
                velocidad.X *= -1;
                float x = rand.Next(0, 100) / 50f;
                if (velocidad.Y > 0)
                {
                    if (velocidad.Y - x > 0)
                    {
                        velocidad.Y -= x;
                    }
                    else
                    {
                        velocidad.Y += x;
                    }
                }
                else
                {
                    if (velocidad.Y + x < 0)
                    {
                        velocidad.Y += x;
                    }
                    else
                    {
                        velocidad.Y -= x;
                    }
                }
                ultimaNotificacion = TipoDeColision.Paleta;
                break;

            case TipoDeColision.Gol:
                posicionActual = posicionInicial;
                DecidirDireccion();
                ultimaNotificacion = TipoDeColision.Gol;
                break;

            case TipoDeColision.Ninguno:
                ultimaNotificacion = TipoDeColision.Ninguno;
                break;
            }
        }