毕业设计思路篇(二)之交通灯的初始化
道路类型的设置
it->m_CTrafficLight_Light.setType(it->JunctionRoad.size());
根据路口道路条数, 设置路灯类型(是T字路口还是+字路口)
/**
* 交通灯类
*/
class TrafficLight {
public:
TrafficLight() {
for (int i = 0; i < 8; i++) {
roadID[i] = -1;
}
};
void changeStatus();
void clock(int time);
void setAllRed();
void setAllGreen();
bool getStatus(int from, int to);
/**
* 设置灯的类型, 是T字路口还是+字路口
* @param type
*/
void setType(int type) { this->type = type; };
//路口标号
// nLeftIn,nLeftOut,nDownIn,nDownOut,nRightIn,nRightOut,nUpIn,nUpOut;
int roadID[8];
//路口是否能走通
bool status[4][4] = {false};
int type;
//表示可通过的方向(目标方向)
//AllRED = 0,LeftGreen = 1,DownGreen = 2,RightGreen = 3,UpGreen = 4,UpDownGreen = 5,LeftRightGreen = 6,cross1 = 7,cross2 = 8
int emStatus = 0;
long long int time = 0;
};
对接各路口
it->m_CTrafficLight_Light.roadID[4] = it->JunctionRoad[0].inID;
it->m_CTrafficLight_Light.roadID[5] = it->JunctionRoad[0].outID;
it->m_CTrafficLight_Light.roadID[0] = it->JunctionRoad[1].inID;
it->m_CTrafficLight_Light.roadID[1] = it->JunctionRoad[1].outID;
switch (it->JunctionRoad.size()) {
case 4:
it->m_CTrafficLight_Light.roadID[6] = it->JunctionRoad[3].inID;
it->m_CTrafficLight_Light.roadID[7] = it->JunctionRoad[3].outID;
//你是不是想说没有break?这里不需要break;
case 3:
it->m_CTrafficLight_Light.roadID[2] = it->JunctionRoad[2].inID;
it->m_CTrafficLight_Light.roadID[3] = it->JunctionRoad[2].outID;
}
交通灯初始化完毕.
版权声明: (https://www.thinkmoon.cn/post/121)
本文首发于指尖魔法屋-毕业设计思路篇(二)之交通灯的初始化
转载或引用必须申明原指尖魔法屋来源及源地址!