ajouté les edges internes
This commit is contained in:
parent
9ad5f08613
commit
64dcf74783
22
Car.py
22
Car.py
@ -4,8 +4,8 @@ import math
|
|||||||
|
|
||||||
class Car:
|
class Car:
|
||||||
def initPath(self):
|
def initPath(self):
|
||||||
startEdge=self.map.getEdge(self.route[self.index])
|
startEdge=self.route[self.index]
|
||||||
nextEdge=self.map.getEdge(self.route[self.index+1])
|
nextEdge=self.route[self.index+1]
|
||||||
|
|
||||||
inverted=not (startEdge.getToNode()==nextEdge.getFromNode() or startEdge.getToNode()==nextEdge.getToNode())
|
inverted=not (startEdge.getToNode()==nextEdge.getFromNode() or startEdge.getToNode()==nextEdge.getToNode())
|
||||||
|
|
||||||
@ -18,13 +18,19 @@ class Car:
|
|||||||
|
|
||||||
def __init__(self,carID,route,parentMap,surface):
|
def __init__(self,carID,route,parentMap,surface):
|
||||||
self.id=carID
|
self.id=carID
|
||||||
self.route=route
|
|
||||||
self.map=parentMap
|
self.map=parentMap
|
||||||
self.index=0
|
self.index=0
|
||||||
self.laneInd=0
|
self.laneInd=0
|
||||||
|
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)
|
||||||
|
|
||||||
startEdge=self.map.getEdge(route[0])
|
|
||||||
nextEdge=self.map.getEdge(route[1])
|
|
||||||
|
|
||||||
self.initPath()
|
self.initPath()
|
||||||
|
|
||||||
@ -39,7 +45,7 @@ class Car:
|
|||||||
pg.draw.circle(self.surf,col,self.map.convertPos(self.pos),5)
|
pg.draw.circle(self.surf,col,self.map.convertPos(self.pos),5)
|
||||||
|
|
||||||
def conduite(self):
|
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
|
vleader=vmax # vitesse de la voiture leader
|
||||||
bleader=15
|
bleader=15
|
||||||
vbar=(self.v+vleader)/2
|
vbar=(self.v+vleader)/2
|
||||||
@ -61,10 +67,10 @@ class Car:
|
|||||||
lgt-=l
|
lgt-=l
|
||||||
pos=list(self.laneShape[-1])
|
pos=list(self.laneShape[-1])
|
||||||
self.laneInd+=1
|
self.laneInd+=1
|
||||||
if(self.laneInd>=len(self.laneShape)-2):
|
if(self.laneInd>=len(self.laneShape)-1):
|
||||||
self.laneInd=0
|
self.laneInd=0
|
||||||
self.index+=1
|
self.index+=1
|
||||||
if(self.index>=len(self.route)-2):
|
if(self.index>=len(self.route)-1):
|
||||||
self.index=0
|
self.index=0
|
||||||
|
|
||||||
self.initPath()
|
self.initPath()
|
||||||
|
@ -10,7 +10,8 @@ class CarController:
|
|||||||
|
|
||||||
def fromPath(self,path):
|
def fromPath(self,path):
|
||||||
for vehicle in sumolib.xml.parse(path,"vehicle"):
|
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):
|
def update(self):
|
||||||
for car in self.cars:
|
for car in self.cars:
|
||||||
|
5
Map.py
5
Map.py
@ -11,7 +11,7 @@ class Map:
|
|||||||
self.surf=surface
|
self.surf=surface
|
||||||
|
|
||||||
def fromPath(self,path):
|
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):
|
def text(self,text,pos,font):
|
||||||
img = font.render(text,True,(255,255,255))
|
img = font.render(text,True,(255,255,255))
|
||||||
@ -39,6 +39,9 @@ class Map:
|
|||||||
def getNode(self,nodeID):
|
def getNode(self,nodeID):
|
||||||
return self.net.getNode(nodeID)
|
return self.net.getNode(nodeID)
|
||||||
|
|
||||||
|
def getLane(self,laneID):
|
||||||
|
return self.net.getLane(laneID)
|
||||||
|
|
||||||
def convertPos(self,pos):
|
def convertPos(self,pos):
|
||||||
bounds=self.net.getBoundary()
|
bounds=self.net.getBoundary()
|
||||||
bounds[0]-=20
|
bounds[0]-=20
|
||||||
|
Loading…
x
Reference in New Issue
Block a user