diff --git a/main.py b/main.py index 961b76b..1bbaec8 100755 --- a/main.py +++ b/main.py @@ -48,9 +48,8 @@ class Car(pygame.sprite.Sprite): self.left_sensor = None self.right_sensor = None self.update_sensors() - self.sensors = [self.left_sensor]#, self.center_sensor, self.right_sensor] - - self.reset_probes() + self.sensors = [self.left_sensor, self.center_sensor, self.right_sensor] + self.probes = [self.vision_length] *3 def update_sensors(self): @@ -90,42 +89,27 @@ class Car(pygame.sprite.Sprite): def show_features(self): if self.draw_sensors: pygame.draw.line(screen, (255,0,0), self.center_sensor[0], self.center_sensor[1]) - # pygame.draw.line(screen, (0,255,0), self.left_sensor[0], self.left_sensor[1]) - # pygame.draw.line(screen, (0,0,255), self.right_sensor[0], self.right_sensor[1]) + pygame.draw.line(screen, (0,255,0), self.left_sensor[0], self.left_sensor[1]) + pygame.draw.line(screen, (0,0,255), self.right_sensor[0], self.right_sensor[1]) pygame.draw.circle(screen, (125,255,125), self.rect.center, 4, 2) - def reset_probes(self): - self.probes = [self.vision_length*2]#*3 - def probe_lines_proximity(self, lines): # print(self.center_sensor, lines[0]) - ip = segments_intersection(self.center_sensor, lines[0]) - # print(ip) - if ip : - pygame.draw.circle(screen, (125,125,255), ip, 4, 2) - print(distance(ip,self.rect.center)) + self.probes = [self.vision_length*2] *3 + for idx,sensor in enumerate([self.left_sensor, self.center_sensor, self.right_sensor]) : + for line in lines : + ip = segments_intersection(sensor, line) + # print(ip) + if ip : + pygame.draw.circle(screen, (125,125,255), ip, 4, 2) + dist = int(distance(ip,self.rect.center)) + self.probes[idx] = min(dist, self.probes[idx]) + # else : + # self.probes[idx] = self.vision_length * 2 + print(self.probes) - # self.reset_probes() - # # print([x for x in zip(self.sensors, self.probes)]) - # for l in lines : - # for i,s in enumerate(self.sensors) : - # ip = segments_intersection(s,l) - # print(s, l) - # if ip : - # # print("ip", ip) - # d = distance(ip, self.left_sensor[1]) - # # print('d',d) - # # print('p was', p, 'is' , min(p,d)) - # self.probes[i] = min(self.probes[i],d) - # # print() - # else : - # print('nothing found') - # pass - # # print(f"D to line {l} :", self.probes) - # print(f"probes :", self.probes) - # print() @@ -167,12 +151,12 @@ lines = [ int(random.random()*GY) ) ] -for x in range(1) +for x in range(10) ] -lines = [ - [(int(GX/2)+100, int(GY/2+225)), (int(GX/2)+100, int(GY/2-225))] +# lines = [ +# [(int(GX/2)+100, int(GY/2+225)), (int(GX/2)+100, int(GY/2-225))] -] +# ] print(lines) @@ -194,4 +178,4 @@ while True : # pygame.draw.circle(screen, (125,255,125), point, 4, 2) pygame.display.flip() - clock.tick(3) \ No newline at end of file + clock.tick(1) \ No newline at end of file