load les definitions des voitures
This commit is contained in:
parent
57bd97644a
commit
21e4d6a1db
15
Car.py
Normal file
15
Car.py
Normal file
@ -0,0 +1,15 @@
|
||||
import sumolib
|
||||
import pygame as pg
|
||||
|
||||
class Car:
|
||||
def __init__(self,carID,route,parentMap,surface):
|
||||
self.id=carID
|
||||
self.route=route
|
||||
self.map=parentMap
|
||||
self.pos=self.map.getEdge(route[0]).getFromNode().getCoord()
|
||||
|
||||
self.surf=surface
|
||||
|
||||
def draw(self):
|
||||
pg.draw.circle(self.surf,(255,0,0),self.map.convertPos(self.pos),5)
|
||||
|
18
CarController.py
Normal file
18
CarController.py
Normal file
@ -0,0 +1,18 @@
|
||||
import sumolib
|
||||
from Car import Car
|
||||
|
||||
class CarController:
|
||||
def __init__(self,path,parentMap,surface):
|
||||
self.map=parentMap
|
||||
self.surf=surface
|
||||
self.cars=[]
|
||||
self.fromPath(path)
|
||||
|
||||
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))
|
||||
|
||||
def draw(self,screen):
|
||||
for car in self.cars:
|
||||
car.draw()
|
||||
screen.blit(self.surf,(0,0))
|
9
Map.py
9
Map.py
@ -1,6 +1,6 @@
|
||||
# Code pour gerer le reseau (la carte)
|
||||
# Pour l'instant c'est juste un wrapper autour de sumolib
|
||||
# mais si on se decide à utiliser notre propre format dans le futur ça faciliterat la transition
|
||||
# mais si on se decide à utiliser notre propre format dans le futur ça facilitera la transition
|
||||
|
||||
import sumolib
|
||||
import pygame as pg
|
||||
@ -14,7 +14,6 @@ class Map:
|
||||
self.net = sumolib.net.readNet(path,withInternal=True)
|
||||
|
||||
def draw(self,screen):
|
||||
self.minVal=0
|
||||
for edge in self.net.getEdges():
|
||||
color=(255,255,255)
|
||||
if(edge.getFunction()=="internal"):
|
||||
@ -25,6 +24,12 @@ class Map:
|
||||
pg.draw.lines(self.surf,color,False,list(pts))
|
||||
|
||||
screen.blit(self.surf,(0,0))
|
||||
|
||||
def getEdge(self,edgeID):
|
||||
return self.net.getEdge(edgeID)
|
||||
|
||||
def getNode(self,nodeID):
|
||||
return self.net.getNode(nodeID)
|
||||
|
||||
def convertPos(self,pos):
|
||||
bounds=self.net.getBoundary()
|
||||
|
9
main.py
9
main.py
@ -9,6 +9,7 @@ import pygame as pg
|
||||
from pygame.locals import *
|
||||
|
||||
from Map import Map
|
||||
from CarController import CarController
|
||||
|
||||
pg.init()
|
||||
|
||||
@ -17,10 +18,15 @@ pg.display.set_caption("Traffic")
|
||||
|
||||
clk = pg.time.Clock()
|
||||
|
||||
netSurf = pg.Surface(screen.get_size())
|
||||
netSurf = pg.Surface(screen.get_size(),pg.SRCALPHA)
|
||||
netSurf = netSurf.convert()
|
||||
m = Map("test.net.xml",netSurf)
|
||||
|
||||
carSurf = pg.Surface(screen.get_size())
|
||||
carSurf.set_colorkey((0, 0, 0))
|
||||
carSurf = carSurf.convert()
|
||||
cc = CarController("test3.rou.xml",m,carSurf)
|
||||
|
||||
running = True
|
||||
while running:
|
||||
for event in pg.event.get():
|
||||
@ -32,6 +38,7 @@ while running:
|
||||
running = False
|
||||
|
||||
m.draw(screen)
|
||||
cc.draw(screen)
|
||||
pg.display.flip()
|
||||
|
||||
clk.tick(60)
|
||||
|
53
test3.rou.xml
Normal file
53
test3.rou.xml
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- generated on 2022-02-07 08:16:35 by Eclipse SUMO netedit Version 1.10.0
|
||||
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/netconvertConfiguration.xsd">
|
||||
|
||||
<input>
|
||||
<sumo-net-file value="/home/leo/confPeip/test/test.net.xml"/>
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<output-file value="/home/leo/confPeip/test/test.net.xml"/>
|
||||
</output>
|
||||
|
||||
<processing>
|
||||
<geometry.min-radius.fix.railways value="false"/>
|
||||
<geometry.max-grade.fix value="false"/>
|
||||
<offset.disable-normalization value="true"/>
|
||||
<lefthand value="false"/>
|
||||
</processing>
|
||||
|
||||
<junctions>
|
||||
<no-turnarounds value="true"/>
|
||||
<junctions.corner-detail value="5"/>
|
||||
<junctions.limit-turn-speed value="5.5"/>
|
||||
<rectangular-lane-cut value="false"/>
|
||||
</junctions>
|
||||
|
||||
<pedestrian>
|
||||
<walkingareas value="false"/>
|
||||
</pedestrian>
|
||||
|
||||
<netedit>
|
||||
<route-files value="/home/leo/confPeip/test/test3.rou.xml"/>
|
||||
</netedit>
|
||||
|
||||
<report>
|
||||
<aggregate-warnings value="5"/>
|
||||
</report>
|
||||
|
||||
</configuration>
|
||||
-->
|
||||
|
||||
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">
|
||||
<vehicle id="vehicle_0" depart="0.00">
|
||||
<route edges="gneE19 gneE20 gneE21 gneE22 gneE23 gneE25 gneE27 gneE28 gneE29 gneE30 gneE31" color="cyan"/>
|
||||
</vehicle>
|
||||
<vehicle id="vehicle_1" depart="0.00">
|
||||
<route edges="gneE20 gneE21 gneE22 gneE23 gneE25 gneE25 gneE27 gneE28 gneE29 gneE30 gneE31" color="cyan"/>
|
||||
</vehicle>
|
||||
<vehicle id="vehicle_2" depart="0.00">
|
||||
<route edges="gneE15 gneE16 gneE17 gneE18 gneE19 gneE20 gneE21 gneE22 gneE23 gneE24" color="cyan"/>
|
||||
</vehicle>
|
||||
</routes>
|
Loading…
x
Reference in New Issue
Block a user