def looking_forward(self,obj): viewpoint_x = self.size*math.cos(self.angle) viewpoint_y = self.size*math.sin(self.angle) def distance(x1,y1,x2,y2) return ((x1-x2)**2+(y1-y2)**2)**(1/2) dist = distance((obj.x,obj.y,self.x,self.y)) if dist > self.sight*(2)**1/2: currentsight = 0 else: points = [] points.append(obj.x-obj.size,obj.y-obj.size) points.append(obj.x-obj.size,obj.y+obj.size) points.append(obj.x+obj.size,obj.y-obj.size) points.append(obj.x+obj.size,obj.y+obj.size) i = 0 for point in points: d = distance(points[0],points[1],viewpoint_x,viewpoint_y) polarkoordinaten.append(d,math.acos(points[0]/d)) sightcheck(d,math.acos([points[0]/d)) def sightcheck(self,dist,alpha): self.objangle = alpha #print(dist) if dist<=self.sight: #print(self.angle%360,alpha) if self.angle-self.viewangle<0: if (self.angle%360-self.viewangle)+360 <= alpha or alpha <= self.angle+self.viewangle: self.v = True self.angle=alpha print("2",self.v) elif self.angle-self.viewangle>360: if (self.angle%360-self.viewangle)-360 <= alpha or alpha <= self.angle+self.viewangle: self.v = True #print(self.v) self.angle=alpha else: if self.angle%360-self.viewangle <= alpha <= self.angle+self.viewangle: self.v = True #print(self.v) self.angle=alpha <\code>