我有一个赛车游戏,有一个方形的甜甜圈作为比赛场地。我想制造一些只会在这个方形路线上绕行的假人汽车,并且在AI车必须做出的最后转弯中遇到一些问题。

在下面,我还添加了一张基本图片,显示了我所拥有的比赛概念。汽车在起点附近开始,沿y方向平移,然后沿x方向平移,接着沿y的另一个平移沿钢带向上行驶,然后沿x方向最后转弯。

double velX = 2;
double vely = 2;
if (positionx < 14 && positiony < 60){ //move straight down the first strip
    vely += vely;
    velx = 0;
}
if (positiony > 65){ //make the first turn and move x units
    gl.glRotated(90, 0, 1, 0);
    velx += velx;
    vely = 0;
}
if (positionx > 20){ //make the next turn and go down the next strip
    gl.glRotated(180, 0, 1, 0);
    vely = 2;
    velx = 0;
    vely -= vely + 1;
}
if (positiony < -68){ //Here is where I am running into my error. I turn but get stuck
    gl.glRotated(-270, 0, 1, 0);
    vely = 0;
    velx += velx -1;
}
positionx += velx;
positiony += vely;

最佳答案

导致您卡住的错误发生在位置20,-69,其中:

if (positiony < -68){ //Here is where I am running into my error. I turn but get stuck
    gl.glRotated(-270, 0, 1, 0);
    vely = 0;
    velx += velx -1;
}


velx已初始化为2; velx += velx -1设为3,让汽车弹回到位置23-69,然后重复。如果将velx += velx -1更改为velx = -2,则汽车将继续行驶。

08-16 05:10