ajouté les edges internes
This commit is contained in:
parent
9ad5f08613
commit
64dcf74783
26
Car.py
26
Car.py
@ -4,8 +4,8 @@ import math
|
||||
|
||||
class Car:
|
||||
def initPath(self):
|
||||
startEdge=self.map.getEdge(self.route[self.index])
|
||||
nextEdge=self.map.getEdge(self.route[self.index+1])
|
||||
startEdge=self.route[self.index]
|
||||
nextEdge=self.route[self.index+1]
|
||||
|
||||
inverted=not (startEdge.getToNode()==nextEdge.getFromNode() or startEdge.getToNode()==nextEdge.getToNode())
|
||||
|
||||
@ -18,14 +18,20 @@ class Car:
|
||||
|
||||
def __init__(self,carID,route,parentMap,surface):
|
||||
self.id=carID
|
||||
self.route=route
|
||||
self.map=parentMap
|
||||
self.index=0
|
||||
self.laneInd=0
|
||||
|
||||
startEdge=self.map.getEdge(route[0])
|
||||
nextEdge=self.map.getEdge(route[1])
|
||||
|
||||
self.route=[]
|
||||
|
||||
route=list(map(self.map.getEdge,route))
|
||||
|
||||
for r,rn in zip(route,route[1:]):
|
||||
self.route.append(r)
|
||||
conn=r.getConnections(rn)[0] # Si il trouve pas de connection c'est la merde
|
||||
edge=self.map.getLane(conn.getViaLaneID()).getEdge()
|
||||
self.route.append(edge)
|
||||
|
||||
|
||||
self.initPath()
|
||||
|
||||
self.pos=list(self.laneShape[0])
|
||||
@ -39,7 +45,7 @@ class Car:
|
||||
pg.draw.circle(self.surf,col,self.map.convertPos(self.pos),5)
|
||||
|
||||
def conduite(self):
|
||||
vmax=10 # vitesse max sur la route actuelle
|
||||
vmax=50 # vitesse max sur la route actuelle
|
||||
vleader=vmax # vitesse de la voiture leader
|
||||
bleader=15
|
||||
vbar=(self.v+vleader)/2
|
||||
@ -61,10 +67,10 @@ class Car:
|
||||
lgt-=l
|
||||
pos=list(self.laneShape[-1])
|
||||
self.laneInd+=1
|
||||
if(self.laneInd>=len(self.laneShape)-2):
|
||||
if(self.laneInd>=len(self.laneShape)-1):
|
||||
self.laneInd=0
|
||||
self.index+=1
|
||||
if(self.index>=len(self.route)-2):
|
||||
if(self.index>=len(self.route)-1):
|
||||
self.index=0
|
||||
|
||||
self.initPath()
|
||||
|
@ -10,7 +10,8 @@ class CarController:
|
||||
|
||||
def fromPath(self,path):
|
||||
for vehicle in sumolib.xml.parse(path,"vehicle"):
|
||||
self.cars.append(Car(vehicle.id,vehicle.route[0].edges.split(),self.map,self.surf))
|
||||
route=vehicle.route[0].edges.split()
|
||||
self.cars.append(Car(vehicle.id,route,self.map,self.surf))
|
||||
|
||||
def update(self):
|
||||
for car in self.cars:
|
||||
|
7
Map.py
7
Map.py
@ -11,7 +11,7 @@ class Map:
|
||||
self.surf=surface
|
||||
|
||||
def fromPath(self,path):
|
||||
self.net = sumolib.net.readNet(path,withInternal=True)
|
||||
self.net = sumolib.net.readNet(path,withInternal=True,withConnections=True)
|
||||
|
||||
def text(self,text,pos,font):
|
||||
img = font.render(text,True,(255,255,255))
|
||||
@ -38,7 +38,10 @@ class Map:
|
||||
|
||||
def getNode(self,nodeID):
|
||||
return self.net.getNode(nodeID)
|
||||
|
||||
|
||||
def getLane(self,laneID):
|
||||
return self.net.getLane(laneID)
|
||||
|
||||
def convertPos(self,pos):
|
||||
bounds=self.net.getBoundary()
|
||||
bounds[0]-=20
|
||||
|
Loading…
x
Reference in New Issue
Block a user