From 33d2e7ee269ce9db3e7e0fd83ba3a8e3f29c1b95 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 5 Apr 2022 23:52:40 +0200 Subject: [PATCH] on ne fait pas apparaitre une voiture par dessus une autre --- CarController.py | 17 +++++++++++++++-- Flow.py | 4 ++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CarController.py b/CarController.py index 74c2b9e..8d1fd49 100644 --- a/CarController.py +++ b/CarController.py @@ -6,7 +6,7 @@ from varEdit import Ui_varEdit from PySide6.QtWidgets import QWidget, QLabel, QToolBox from PySide6.QtCore import Qt, Slot, Signal, QThread from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries -from math import ceil +from math import ceil, dist class carInfo(QWidget): def __init__(self,parent): @@ -100,6 +100,7 @@ class CarController: self.cars=[] self.flows=[] self.t=0 + self.spawnFailed = 0 self.infoWidget = None @@ -151,6 +152,10 @@ class CarController: cars = self.getCarsOnEdge(edgeID) 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): if self.map.net is None: return @@ -160,7 +165,15 @@ class CarController: for flow in self.flows: if flow.shouldSpawn(self.t): - self.cars.append(flow.spawnCar()) + carsClose = self.getCarsClose(flow.carModel) + try: + next(carsClose) + except StopIteration: + 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): for ind,car in enumerate(self.cars): diff --git a/Flow.py b/Flow.py index fa2051a..ae0d683 100644 --- a/Flow.py +++ b/Flow.py @@ -13,6 +13,7 @@ class Flow: self.adjVPH = self.vph + randint(0,self.randomVal) self.carModel = Car("model",self.route,start,parentMap,parentController,None) self.carsSpawned = 0 + self.cc = parentController def prepareRoute(self): self.carModel.prepareRoute() @@ -27,3 +28,6 @@ class Flow: self.carsSpawned += 1 self.adjVPH = self.vph + randint(0,self.randomVal) return newCar + + def addCar2Counter(self): + self.carsSpawned += 1