def ir(self, x3, y3): a2 = angulo(self.x, self.y, x3, y3) print(self.a1, a2) amplitud = 10 pg = 85 d = distancia(self.x, self.y, x3, y3) if abs(a2 - self.a1) <= amplitud: if d > 30: return 150, 150, 0 else: data = self.orientar(self.px, self.py) comunicacion.escuchar_enviar(data) if abs(self.a1 - angulo(self.x, self.y, self.px, self.py)) < 15: data = 200, 200, 0 comunicacion.escuchar_enviar(data) time.sleep(3) data = 0, 0, 0 comunicacion.escuchar_enviar(data) else: data = self.orientar(self.px, self.py) comunicacion.escuchar_enviar(data) #time.sleep(0.3) #return 0, 0, 0 elif -(a2 - self.a1) > amplitud: print(self.a1, a2) return pg, pg, 2 elif a2 - self.a1 > amplitud: print(self.a1, a2) return pg, pg, 3
def orientar(self, p1, p2): a2 = angulo(self.x, self.y, p1, p2) amplitud = 5 pg = 85 if abs(a2 - self.a1) <= amplitud: return 0, 0, 0 elif -(a2 - self.a1) > amplitud: print(self.a1, a2) return pg, pg, 2 elif a2 - self.a1 > amplitud: print(self.a1, a2) return pg, pg, 3
def actualizar(self, x, y, x2, y2, px, py): if self.pausa is False: print('hola') self.x = x self.y = y self.x2 = x2 self.y2 = y2 self.px = px self.py = py self.angulo() self.tenerpelota(px, py) if self.activo is True and self.pelota is False: if self.enemigo.pelota is False: dist1 = 80 dist2 = 80 self.modo = 'Balon' if 90 <= angulo(self.x2, self.y2, px, py) <= 270: a = math.radians(angulo(self.px, py, self.arco_enemigox, self.arco_enemigoy)) puntoairx = px - math.cos(a) * dist2 puntoairy = py - math.sin(a) * dist2 if distancia(self.x, self.y, puntoairx, puntoairy) > 20 and self.llego is False: data = self.ir(puntoairx, puntoairy) comunicacion.escuchar_enviar(data) else: self.llego = True if self.llego is True: if distancia(self.x2, self.y2, self.px, self.py) > 20: data = self.ir(px, py) comunicacion.escuchar_enviar(data) self.tenerpelota(px, py) else: self.llego = False data = 200, 200, 0 comunicacion.escuchar_enviar(data) time.sleep(2) data = 0, 0 , 0 comunicacion.escuchar_enviar(data) self.modo = 'Atacar' else: a = math.radians(angulo(self.px, self.py, self.arco_enemigox, self.arco_enemigoy)) if self.py <= 250: print(a) puntoairx = self.px - math.cos(a) * dist1 puntoairy = self.py + math.sin(a) * dist1 data = self.ir(puntoairx, puntoairy) comunicacion.escuchar_enviar(data) #puntoairx2 = self.px + math.cos(a - math.radians(90)) * dist2 #puntoairy2 = self.py - math.sin(a - math.radians(90)) * dist2 #hacer que compruebe cuando llega al punto a ir x,y para que pase a ir al punto # de atras de la pelota. else: print(a) puntoairx = self.px - math.cos(a) * dist1 puntoairy = self.py + math.sin(a) * dist1 data = self.ir(puntoairx, puntoairy) #puntoairx2 = self.px + math.cos(a + math.radians(90)) * dist2 #puntoairy2 = self.py3 - math.sin(a + math.radians(90)) * dist2 comunicacion.escuchar_enviar(data) else: self.modo = 'Defender' if distancia(self.x, self.y, self.arcox, self.arcoy) > 60: data = self.ir(self.arcox, self.arcoy) else: #if self.a < 15 or self.a > 345: #self.orientar(self.x, self.y + 50) #else: #if self.y - self.py > 0: #data = 100, 100, 1 #else: #data = 100, 100, 0 data = self.orientar(px, py) comunicacion.escuchar_enviar(data) else: if self.pelota is True: self.modo = 'Atacar' if distancia(self.x, self.y, self.arco_enemigox, self.arco_enemigoy) > 150: data = self.ir(self.arco_enemigox, self.arco_enemigoy) else: '''data = 200, 200, 0 comunicacion.escuchar_enviar(data) time.sleep(2) data = 0, 0 , 0 comunicacion.escuchar_enviar(data) ''' data = self.orientar(self.px, self.py) comunicacion.escuchar_enviar(data) if abs(self.a1 - angulo(self.x2, self.y2, self.px, self.py)) < 7: data = 0, 0, 0 comunicacion.escuchar_enviar(data) data = self.orientar(self.px, self.py) comunicacion.escuchar_enviar(data) if abs(self.a1 - angulo(self.x2, self.y2, self.px, self.py)) < 6: data = 200, 200, 0 comunicacion.escuchar_enviar(data) time.sleep(3) data = 0, 0, 0 comunicacion.escuchar_enviar(data) else: data = self.orientar(self.px, self.py) comunicacion.escuchar_enviar(data) print(self.modo)
def angulo(self): self.a1 = angulo(self.x, self.y, self.x2, self.y2)