我用 VC++ 做了一个简单的弹球程序。
这个程序的目标是球必须在菱形中反弹。它不能脱离菱形。
好像运行成功了,但是在左右角,卡住了。
如何解决这个问题?我认为当球向左右角移动时,方程的条件是重复的......
你能建议其他算法来解决这个问题吗?
我试图解决这个问题,
while(!isInside(getNextPos(circle))) { updateDirectionVector(circle); }
但我不能这样做,因为随机值每次都发生了变化。(使用定时器重复)
这是这个程序的算法,除了在角落工作。
up:
while(1) goDownSideCircle;
if(StuckOnDownSide) goto down;
down:
while(1) goUpSideCircle;
if(StuckOnUpSide) goto up;