示例#1
0
        public void calularMetricas(int posicionInicial)
        {
            Random random        = new Random();
            int    posicionFinal = GraphicsDeviceManager.DefaultBackBufferWidth / 2;

            //      CONOCER DESDE QUE PUNTO DEBE COMENZAR A CALCULAR EL V1
            if (randomX1 <= 0)
            {
                if (posicionInicial < posicionFinal)
                {
                    randomX1 = random.Next(posicionInicial, GraphicsDeviceManager.DefaultBackBufferWidth - 236);
                }
                else
                {
                    randomX1 = random.Next(0, posicionInicial);
                }
                //      VERTICES ALEATORIOS DE LA ELIPSE
                randomX2 = random.Next(randomX1, GraphicsDeviceManager.DefaultBackBufferWidth - 236);
            }

            else
            {
                int numero = random.Next(0, GraphicsDeviceManager.DefaultBackBufferWidth - 236);
                switch (vertice)
                {
                case 1:
                    if (numero < randomX1)
                    {
                        randomX2 = randomX1;
                        randomX1 = numero;
                    }
                    else
                    {
                        randomX2 = numero;
                    }
                    break;

                case 2:
                    if (numero > randomX2)
                    {
                        randomX1 = randomX2;
                        randomX2 = numero;
                    }
                    else
                    {
                        randomX1 = numero;
                    }
                    break;
                }
                //      VERTICES ALEATORIOS DE LA ELIPSE
            }



            //      FOCOS ALEATORIOS DE LA ELIPSE

            randomF1 = random.Next(randomX1, randomX2);
            randomF2 = random.Next(randomF1, randomX2);

            vertice1 = new Punto(randomX1, GraphicsDeviceManager.DefaultBackBufferHeight - 300);
            vertice2 = new Punto(randomX2, GraphicsDeviceManager.DefaultBackBufferHeight - 300);
            foco1    = new Punto(randomF1, GraphicsDeviceManager.DefaultBackBufferHeight - 300);
            foco2    = new Punto(randomF2, GraphicsDeviceManager.DefaultBackBufferHeight - 300);

            elipse = new Elipse();
            elipse.setF1(foco1);
            elipse.setF2(foco2);
            elipse.setV1(vertice1);
            elipse.setV2(vertice2);
            elipse.calCentro(vertice1, vertice2);
            elipse.calcCA();
            elipse.calcB();
        }
示例#2
0
        public void Update(GameTime gameTime, Death death)
        {
            switch (vertice)
            {
            //      LA MUERTE SE MUEVE AL VERTICE 2
            case 1:
                if (posicion.X < vertice2.GetX() - 1 && posicion.X > vertice1.GetX() - 1)
                {
                    puntoPosicion = elipse.movePunto(posicion.X + 1);
                }
                else
                {
                    vertice = 2;
                    calularMetricas((int)posicion.X);
                }
                break;

            //      LA MUERTE SE MUEVE AL VERTICE 1
            case 2:

                if (posicion.X < vertice2.GetX() && posicion.X > vertice1.GetX())
                {
                    puntoPosicion = elipse.movePunto(posicion.X - 1);
                }
                else
                {
                    vertice = 1;
                    calularMetricas((int)posicion.X);
                }
                break;

            default:
                break;
            }

            /* if ((posicion.X < vertice2.GetX() && posicion.X >= vertice1.GetX()) && movimientoCompleto==false)
             *   puntoPosicion = elipse.movePunto(posicion.X + 1);
             *
             * else
             * {
             *   movimientoCompleto = true;
             *  if (posicion.X >= vertice2.GetX()-1)
             *  {
             *      puntoPosicion = elipse.movePunto(posicion.X - 1);
             *  }
             *  else if (posicion.X <= vertice1.GetX() + 1)
             *      puntoPosicion = elipse.movePunto(posicion.X + 1);
             *  else
             *  {
             *      movimientoCompleto = false;
             *      calularMetricas((int)posicion.X);
             *  }
             * }
             */
            //animacionPlayer.PlayAnimation(caminar);
            posicion.X = puntoPosicion.GetX();
            posicion.Y = puntoPosicion.GetY();

            // DISTANCIA ENTRE ENEMIGO(RITCHER) Y LOBITO
            playerDistanceX = death.posicion.X - posicion.X;
            playerDistanceY = death.posicion.Y - posicion.Y;

            #region "Movimientos Aleatorios"

            timeCountRandom += 0.25F;

            if (die == false)
            {
                if (timeCountRandom >= 50)
                {
                    aleat = r.NextDouble();

                    if (aleat < 0.50)
                    {
                        LanzarOz = true;
                    }
                    else if (aleat > 0.50)
                    {
                        LanzarOz = true;
                    }


                    timeCountRandom = 0;
                }
            }

            #endregion

            //
            siguiendo = false;
            piso      = false;
            caminando = false;
            levitando = false;

            standRect = new Rectangle((int)posicion.X, (int)posicion.Y, standRect.Width, standRect.Height);
            hitRect   = new Rectangle((int)posicion.X, (int)posicion.Y, hitRect.Width, hitRect.Height);


            //      POSICIONES DE LOS RECTANGULOS DE COLISION
            getHitted.X = posicion.X - 10;
            getHitted.Y = posicion.Y - 85;
            getStand.X  = posicion.X - 23;
            getStand.Y  = posicion.Y - 18;


            acciones(gameTime, death);
        }
示例#3
0
 public void setCentro(Punto centro)
 {
     this.centro = centro;
 }
示例#4
0
 public void setF2(Punto f2)
 {
     this.f2 = f2;
 }
示例#5
0
 public void setF1(Punto f1)
 {
     this.f1 = f1;
 }
示例#6
0
 public void setV2(Punto v2)
 {
     this.v2 = v2;
 }
示例#7
0
 public void setV1(Punto v1)
 {
     this.v1 = v1;
 }