on ne fait pas apparaitre une voiture par dessus une autre

This commit is contained in:
leo 2022-04-05 23:52:40 +02:00
parent cdb5ccc9ac
commit 33d2e7ee26
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
2 changed files with 19 additions and 2 deletions

View File

@ -6,7 +6,7 @@ from varEdit import Ui_varEdit
from PySide6.QtWidgets import QWidget, QLabel, QToolBox from PySide6.QtWidgets import QWidget, QLabel, QToolBox
from PySide6.QtCore import Qt, Slot, Signal, QThread from PySide6.QtCore import Qt, Slot, Signal, QThread
from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries
from math import ceil from math import ceil, dist
class carInfo(QWidget): class carInfo(QWidget):
def __init__(self,parent): def __init__(self,parent):
@ -100,6 +100,7 @@ class CarController:
self.cars=[] self.cars=[]
self.flows=[] self.flows=[]
self.t=0 self.t=0
self.spawnFailed = 0
self.infoWidget = None self.infoWidget = None
@ -151,6 +152,10 @@ class CarController:
cars = self.getCarsOnEdge(edgeID) cars = self.getCarsOnEdge(edgeID)
return filter(lambda c: c.laneId == laneID,cars) return filter(lambda c: c.laneId == laneID,cars)
def getCarsClose(self, car):
cars = self.getCarsOnEdge(car.getCurrentEdge().getID())
return filter(lambda c: dist(c.pos, car.pos) < car.minSpace, cars)
def update(self): def update(self):
if self.map.net is None: if self.map.net is None:
return return
@ -160,7 +165,15 @@ class CarController:
for flow in self.flows: for flow in self.flows:
if flow.shouldSpawn(self.t): if flow.shouldSpawn(self.t):
carsClose = self.getCarsClose(flow.carModel)
try:
next(carsClose)
except StopIteration:
self.cars.append(flow.spawnCar()) self.cars.append(flow.spawnCar())
else:
self.spawnFailed += 1
flow.addCar2Counter()
print(f"nope, y as déjà une voiture ici : n°{self.spawnFailed}")
def draw(self,painter): def draw(self,painter):
for ind,car in enumerate(self.cars): for ind,car in enumerate(self.cars):

View File

@ -13,6 +13,7 @@ class Flow:
self.adjVPH = self.vph + randint(0,self.randomVal) self.adjVPH = self.vph + randint(0,self.randomVal)
self.carModel = Car("model",self.route,start,parentMap,parentController,None) self.carModel = Car("model",self.route,start,parentMap,parentController,None)
self.carsSpawned = 0 self.carsSpawned = 0
self.cc = parentController
def prepareRoute(self): def prepareRoute(self):
self.carModel.prepareRoute() self.carModel.prepareRoute()
@ -27,3 +28,6 @@ class Flow:
self.carsSpawned += 1 self.carsSpawned += 1
self.adjVPH = self.vph + randint(0,self.randomVal) self.adjVPH = self.vph + randint(0,self.randomVal)
return newCar return newCar
def addCar2Counter(self):
self.carsSpawned += 1