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.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):
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):

View File

@ -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