免责声明:这是一个学校项目,但教授说可以寻求帮助。
该项目是模拟交通网格。我正在研究的部分是跟踪哪辆车在哪条路上。道路是包含汽车的阵列列表。 我制作了一个包含所有道路的道路处理程序(数组列表)。
public void checkPositionOnRoad(){
if(this.getPosition() > RoadHandler.currentRoad.getLength()-this.getCarLength()){
RoadHandler.currentRoad.remove(this);
Road nextRoad = moveToNextRoad(RoadHandler.currentRoad);
nextRoad.accept(this);
}
}
问题在于我不知道如何跟踪" currentRoad"。走下一条路很容易,因为我可以说
nextroad(Road currentRoad);
我只是抓住currentRoad的索引+ 1。
最终目标是让汽车完成它的道路,然后继续前进到RoadHandler跟踪的道路阵列中的下一个道路。因此,当汽车行驶时,它会检查它在路上的位置。一旦它完成了它的道路,它就会从当前的道路中走出来,并将自己添加到下一道路上。
public void run(double time) {
checkPositionOnRoad();
position += velocity;
}
此外,我想重置汽车在新路上的位置。 checkPositionOnRoad和run方法在Car类中,nextRoad方法在RoadHandler类中。
答案 0 :(得分:0)
易。创建一个POJO类来表示汽车对象。并在该类中创建一个名为currentRoad的属性。喜欢这个
String currenRoad;
每次开车进入新路时,都应更改当前道路属性。这意味着您需要创建一个POJO类来表示道路对象。在编码之前一定要记住设计问题