Ejemplo n.º 1
0
//----------------------------------------------------------------------------------
void Medroso::Atualiza(void)
{
   //procura por quem é a nave principal na central
   Objeto *nave = Procura(JOGADOR); 
    
   if (nave == NULL) return; //por algum motivo, a nave principal não está na central
   
   ZeraComandos();
   
   
   //tenta se afastar dos outros inimigos
   Objeto *outro = InimigoMaisProximo();
   
   if (outro != NULL && outro->Distancia(Posicao()) < 10)
   {
      if (NaEsquerda(outro->Posicao())) JogadaDeLadoDir(true);
      if (NaDireita(outro->Posicao())) JogadaDeLadoEsq(true);
      if (NaTras(outro->Posicao())) ParaFrente(true);
      if (NaFrente(outro->Posicao())) ParaTras(true);
   }
   
   if (nave->NaFrente(Posicao())) //se eu estou na frente do outro, melhor fugir
   {
      if (NaEsquerda(nave->Posicao())) ParaDireita(true);
      else ParaEsquerda(true);

      if (NaFrente(nave->Posicao())) ParaTras(true);
      else ParaFrente(true);
   }
   else //se ele está de costas para mim, vamos atacar
   {
     if (NaEsquerda(nave->Posicao())) ParaEsquerda(true);
     else ParaDireita(true);
     if (NaFrente(nave->Posicao()))
     {
         if (Distancia(nave->Posicao()) > 10) ParaFrente(true);
     }
     else ParaTras(true);    
   }
   if (NaFrente(nave->Posicao())) Atira(true);
   else Atira(false);
   
   Nave::Atualiza();
}
Ejemplo n.º 2
0
int LBP::Detecta(Mat frame)
{
    Procura(frame);
    return IMAGENSPOSITIVAS;
}