⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 carmove.java

📁 主要功能:对五条道路的车辆进行控制
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package fivestarcross;import java.math.*;import java.awt.*;/** * * @author Administrator */public class CarMove implements Runnable{    CarMove(MainPanel aMainPanel,Car aCar){        p=aMainPanel;        c=aCar;    }    public void run(){    while(true){        if(p.Player==0){        if(c.getStatus()==0){            if(p.fivejunct.getTrafficLight()[c.getIn()][c.getOut()]==0){                {move();}            }                    else{                if(notBlock()){                move();                }            }            if(Pass()){c.setStatus(1);}        }        else if(c.getStatus()==1){            move();            if(preTurn()){                c.setStatus(2);}            }               else if(c.getStatus()==2){            move();            if(Turn()){                c.setStatus(3);c.setAngle(p.angel[c.getOut()]+180);            }        }        else if(c.getStatus()==3){         if(c.getnowPoint().x>=0&&c.getnowPoint().y>=0&&c.getnowPoint().x<=800&&c.getnowPoint().y<=600)            move();         else{p.queue[c.getIn()*5+c.getOut()].remove(c);break;}        }        }        else if(p.Player==2){break;}        p.repaint();        try{        Thread.sleep(p.onetime/25);    }catch(InterruptedException e){}    }     p.queue[c.getIn()*5+c.getOut()].remove(c);     p.repaint();    }    private boolean notBlock(){        if(c.getCar()==null||c.getCar().getStatus()!=0){            if(Stop())return false;            else return true;        }        if(c.getIn()==1){            if(c.getCar().getnowPoint().x-25>c.getnowPoint().x&&!Stop())                return true;        }        else if(c.getIn()==2){            if(c.getCar().getnowPoint().y-25>c.getnowPoint().y&&!Stop())return true;        }        else if(c.getIn()==3){            if(c.getCar().getnowPoint().x+25<c.getnowPoint().x&&!Stop())return true;        }        else if(c.getIn()==4||c.getIn()==0){            if(c.getCar().getnowPoint().y+25<c.getnowPoint().y&&!Stop())return true;        }        return false;    }    private boolean Stop(){        if(c.getIn()==0||c.getIn()==1){if(c.getnowPoint().x>=c.getstopPoint().x)return true;}        else if(c.getIn()==2){if(c.getnowPoint().y>=c.getstopPoint().y)return true;}        else if(c.getIn()==3||c.getIn()==4){if(c.getnowPoint().x<=c.getstopPoint().x)return true;}        return false;    }    private boolean Pass(){        if(c.getIn()==0||c.getIn()==1){if(c.getnowPoint().x>c.getstopPoint().x+5)return true;}        else if(c.getIn()==2){if(c.getnowPoint().y>c.getstopPoint().y+5)return true;}        else if(c.getIn()==3||c.getIn()==4){if(c.getnowPoint().x<c.getstopPoint().x-5)return true;}        return false;    }    private boolean preTurn(){        if(c.getIn()==0&&c.getOut()==1){            if(c.getnowPoint().x>296)            {c.setAngle(270);             return true;}            else return false;        }        else if(c.getIn()==4&&c.getOut()==0){            if(c.getnowPoint().y<369){                c.setAngle(0);                return true;}            else return false;        }        else if(c.getIn()==0&&c.getOut()==4){            if(c.getnowPoint().y<397){                c.setAngle(180);                return true;}            else return false;            }                return true;    }    private boolean Turn(){        if(c.getIn()==0||c.getIn()==4){            if(c.getIn()==4&&c.getOut()==0){if(c.getnowPoint().x<c.getturnPoint().x)return true;}            else if(c.getIn()==0&&c.getOut()==4){if(c.getnowPoint().x>c.getturnPoint().x)return true;}            else {if(c.getnowPoint().y<c.getturnPoint().y)return true;}        }        else if(c.getIn()==1){if(c.getnowPoint().x>c.getturnPoint().x)return true;}        else if(c.getIn()==2){if(c.getnowPoint().y>c.getturnPoint().y)return true;}        else if(c.getIn()==3){if(c.getnowPoint().x<c.getturnPoint().x)return true;}        return false;    }    private void move(){   c.setnowPoint(c.getnowPoint().x-(int)(5*Math.cos(Math.toRadians(c.getAngle()))),c.getnowPoint().y+(int)(5*Math.sin(Math.toRadians(c.getAngle()))));    }    MainPanel p;    Car c;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -