it works
This commit is contained in:
52
main.py
52
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])
|
||||
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)
|
||||
print(distance(ip,self.rect.center))
|
||||
|
||||
# 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()
|
||||
dist = int(distance(ip,self.rect.center))
|
||||
self.probes[idx] = min(dist, self.probes[idx])
|
||||
# else :
|
||||
# print('nothing found')
|
||||
# pass
|
||||
# # print(f"D to line {l} :", self.probes)
|
||||
# print(f"probes :", self.probes)
|
||||
# print()
|
||||
# self.probes[idx] = self.vision_length * 2
|
||||
print(self.probes)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
clock.tick(1)
|
||||
Reference in New Issue
Block a user