0

我正在尝试模拟一个弹跳球,它只是吐出 x 位置、y 位置、时间和弹跳次数的数字。就物理学而言,它工作得很好,但问题是当我尝试增加“反弹”变量时,它每帧增加一,而不是一,然后等待下一次反弹。

这是相关的循环:

while(bounces<=maxBounces){
    frames++;
    seconds=frames/1000;    

    if(yPos>=0&&bounces==0){
        initRads=getRads(initAng);
        dropBall(initVel, initRads);    
    }
    if(yPos<0){
        yPos=0;
        bounces++;
        cout.precision(5);
        cout<<seconds<<"\t"<<yPos<<"\t"<<xPos<<"\t"<<bounces<<"\n";
        newVel=getVel(currYVel, currXVel, cor);
        newAng = getAng(currYVel,newVel);

        dropBall(newVel, newAng);
    }   
}
4

1 回答 1

1

你的模拟有点错误。yPos<0如果这样做,你应该有一个 else 分支dropBall

于 2013-11-13T14:37:56.547 回答