def encontra_posicao_goleiro_novo(self, campo, bola): self.orientacaoDesejada = Vetor.unitario(math.pi/2) self.posDesejada.x = campo.get_gol(self.lado).centro().x self.posDesejada.y = bola.get_pos().y if (self.posDesejada.y < campo.minLgol): self.posDesejada.y = campo.minLgol if (self.posDesejada.y > campo.maxLgol): self.posDesejada.y = campo.maxLgol
def encontra_posicao_goleiro(self, campo, bola, adversario): self.orientacaoDesejada = Vetor.unitario(math.pi/2) # orientacao paralela a linha do gol self.posDesejada.x = campo.get_gol(self.lado).centro().x # no eixo x, centro do gol reta = Reta(adversario.get_pos(), bola.get_pos()) #reta que liga o adversario a bola if (reta.e_funcao_de_x()): # se a reta for funcao de x self.posDesejada.y = reta.encontra_y(self.posDesejada.x) # encontra o prolongamento da reta else: # se a reta for paralela a linha do gol self.posDesejada.y = self.pos.y # nao se move no eixo y #garante que o goleiro fique na frente do gol if (self.posDesejada.y < campo.minLgol): self.posDesejada.y = campo.minLgol if (self.posDesejada.y > campo.maxLgol): self.posDesejada.y = campo.maxLgol print "posicao desejada - x: %s, y: %s / orientacao desejada: %s" % (self.posDesejada.x, self.posDesejada.y, self.orientacaoDesejada.angulo())