我正在试图模拟一个弹跳球,一个只是吐出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);
}
}
答案 0 :(得分:1)
你的模拟有点不对劲。如果yPos<0
执行dropBall
,则应该有一个else分支。