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.left_sensor = None
|
||||||
self.right_sensor = None
|
self.right_sensor = None
|
||||||
self.update_sensors()
|
self.update_sensors()
|
||||||
self.sensors = [self.left_sensor]#, self.center_sensor, self.right_sensor]
|
self.sensors = [self.left_sensor, self.center_sensor, self.right_sensor]
|
||||||
|
self.probes = [self.vision_length] *3
|
||||||
self.reset_probes()
|
|
||||||
|
|
||||||
|
|
||||||
def update_sensors(self):
|
def update_sensors(self):
|
||||||
@@ -90,42 +89,27 @@ class Car(pygame.sprite.Sprite):
|
|||||||
def show_features(self):
|
def show_features(self):
|
||||||
if self.draw_sensors:
|
if self.draw_sensors:
|
||||||
pygame.draw.line(screen, (255,0,0), self.center_sensor[0], self.center_sensor[1])
|
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,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,0,255), self.right_sensor[0], self.right_sensor[1])
|
||||||
pygame.draw.circle(screen, (125,255,125), self.rect.center, 4, 2)
|
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):
|
def probe_lines_proximity(self, lines):
|
||||||
# print(self.center_sensor, lines[0])
|
# 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)
|
# print(ip)
|
||||||
if ip :
|
if ip :
|
||||||
pygame.draw.circle(screen, (125,125,255), ip, 4, 2)
|
pygame.draw.circle(screen, (125,125,255), ip, 4, 2)
|
||||||
print(distance(ip,self.rect.center))
|
dist = int(distance(ip,self.rect.center))
|
||||||
|
self.probes[idx] = min(dist, self.probes[idx])
|
||||||
# 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 :
|
# else :
|
||||||
# print('nothing found')
|
# self.probes[idx] = self.vision_length * 2
|
||||||
# pass
|
print(self.probes)
|
||||||
# # print(f"D to line {l} :", self.probes)
|
|
||||||
# print(f"probes :", self.probes)
|
|
||||||
# print()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -167,12 +151,12 @@ lines = [
|
|||||||
int(random.random()*GY)
|
int(random.random()*GY)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
for x in range(1)
|
for x in range(10)
|
||||||
]
|
]
|
||||||
lines = [
|
# lines = [
|
||||||
[(int(GX/2)+100, int(GY/2+225)), (int(GX/2)+100, int(GY/2-225))]
|
# [(int(GX/2)+100, int(GY/2+225)), (int(GX/2)+100, int(GY/2-225))]
|
||||||
|
|
||||||
]
|
# ]
|
||||||
|
|
||||||
print(lines)
|
print(lines)
|
||||||
|
|
||||||
@@ -194,4 +178,4 @@ while True :
|
|||||||
# pygame.draw.circle(screen, (125,255,125), point, 4, 2)
|
# pygame.draw.circle(screen, (125,255,125), point, 4, 2)
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
clock.tick(3)
|
clock.tick(1)
|
||||||
Reference in New Issue
Block a user