From ec2004bb36fa00554eb5dc70a04653b28ad60374 Mon Sep 17 00:00:00 2001 From: w-mj Date: Mon, 25 Dec 2017 11:10:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=A5=BC=E6=A2=AF=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=AD=A3=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- car.cpp | 1 + parkingLotManager.cpp | 10 ++++++++++ parkingLotManager.h | 1 + 3 files changed, 12 insertions(+) diff --git a/car.cpp b/car.cpp index 7a3c162..fcb0d1e 100644 --- a/car.cpp +++ b/car.cpp @@ -34,6 +34,7 @@ Car::Car(ParkingLotManager * manager, QGraphicsItem *parent, int dir, Car::Color connect(posAni,QPropertyAnimation::finished,this,followPath); connect(this, &Car::queueHead, manager, &ParkingLotManager::requestIn); connect(this, &Car::exit, manager, &ParkingLotManager::leave); + connect(this, &Car::stair, manager, &ParkingLotManager::requestStair); } void Car::Forward(qreal vel) diff --git a/parkingLotManager.cpp b/parkingLotManager.cpp index 2a543b3..a9bb234 100644 --- a/parkingLotManager.cpp +++ b/parkingLotManager.cpp @@ -134,6 +134,16 @@ void ParkingLotManager::requestOut(Car *car, int exit) Path *p; // TODO:请求出口 } +void ParkingLotManager::requestStair(Car *car) +{ + int l = car->getFloor(); + int n = car->getNum(); + int e = car->getEntryNum(); + Path *p = m_graph[l]->findPath(NODE_TYPE::stair, e, NODE_TYPE::space, n); + car->setPath(p); + car->followPath(); +} + void ParkingLotManager::requestIn(Car* car) { int entry = car->getEntryNum(); diff --git a/parkingLotManager.h b/parkingLotManager.h index 85a8994..85d533b 100644 --- a/parkingLotManager.h +++ b/parkingLotManager.h @@ -34,6 +34,7 @@ public: public slots: void requestIn(Car* car); void requestOut(Car* car, int exit = -1); + void requestStair(Car* car); void leave(Car* car); void addCar(int entry = -1);