Example #1
0
 public void irARoca()
 {
     if (roca.active)
     {
         if (position.X <= roca.position.X + cercania && position.X >= roca.position.X - cercania && position.Y <= roca.position.Y + cercania && position.Y >= roca.position.Y - cercania)
         {
             if (roca.recoger())
             {
                 cargarRoca();
                 it = 0;
                 if (lleno)
                 {
                     estado = Estado.IR_A_NAVE;
                 }
                 else
                 {
                     estado = Estado.HACIENDO_NADA;
                 }
             }
             else
             {
                 estado = Estado.HACIENDO_NADA;
             }
             roca = null;
         }
         else
         {
             if (position.X < roca.position.X)
             {
                 position.X += velocidad;
             }
             if (position.X > roca.position.X)
             {
                 position.X -= velocidad;
             }
             if (position.Y < roca.position.Y)
             {
                 position.Y += velocidad;
             }
             if (position.Y > roca.position.Y)
             {
                 position.Y -= velocidad;
             }
         }
     }
     else
     {
         //Otro la recogio
         estado = Estado.HACIENDO_NADA;
         roca   = null;
     }
 }
Example #2
0
        public void buscarRocas()
        {
            double min = -1;

            foreach (Roca roca in espacio.rocas)
            {
                if (roca.active)
                {
                    if (min == -1)
                    {
                        min = Math.Sqrt(Math.Pow(roca.position.X - position.X, 2) + Math.Pow(roca.position.Y - position.Y, 2));
                    }
                    else
                    {
                        min = Math.Min(min, Math.Sqrt(Math.Pow(roca.position.X - position.X, 2) + Math.Pow(roca.position.Y - position.Y, 2)));
                    }
                    if (Math.Sqrt(Math.Pow(roca.position.X - position.X, 2) + Math.Pow(roca.position.Y - position.Y, 2)) <= distanciaBusqueda && min == Math.Sqrt(Math.Pow(roca.position.X - position.X, 2) + Math.Pow(roca.position.Y - position.Y, 2)))
                    {
                        estado    = Estado.ENCONTRO_ROCA;
                        this.roca = roca;
                    }
                }
            }
        }