diff --git a/main.py b/main.py index 621d269..2e09a8b 100755 --- a/main.py +++ b/main.py @@ -31,7 +31,7 @@ class Car(pygame.sprite.Sprite): self.rect = self.image.get_rect() self.rect.center = (75, GY -50) - self.speed = 0.5 + self.speed = 1.5 self.heading = 0 self.heading_change = 0 self.vision_length = VISION_LENGTH # line liength @@ -55,6 +55,7 @@ class Car(pygame.sprite.Sprite): self.update_sensors() self.probe_brain() + self.run = True def update_sensors(self): center = self.rect.center @@ -87,6 +88,10 @@ class Car(pygame.sprite.Sprite): 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]) + if dist < 2 * self.speed or not self.speed : + self.run = False + print(f'Car {id(self)} crashed') + # else : # self.probes[idx] = self.vision_length * 2 # print(self.probes) @@ -113,7 +118,7 @@ class Car(pygame.sprite.Sprite): ) if self.speed : - self.heading += self.heading_change * 10 / self.speed + self.heading += self.heading_change * 6 / self.speed self.heading = self.heading % 360 self.speed += self.throttle #THROTTLE_POWER @@ -150,7 +155,7 @@ map_lines = map1 all_cars = pygame.sprite.Group() -for x in range(1): +for x in range(10): car = Car() car.heading = x * 30 + 35 all_cars.add(car) @@ -158,12 +163,13 @@ for x in range(1): clock = pygame.time.Clock() while True : screen.fill(CELL_COLOR) - all_cars.update() all_cars.draw(screen) for c in all_cars : c.show_features() - c.probe_lines_proximity(map_lines) - c.probe_brain() + if c.run : + c.probe_lines_proximity(map_lines) + c.probe_brain() + c.update() for line in map_lines : pygame.draw.line(screen, (255,255,255), line[0], line[1])