【发布时间】:2015-11-13 00:05:18
【问题描述】:
当一个点到达底部时,我试图将其弹起。不幸的是,它一直在下降。代码如下:
void Timer(int value) {
if (value) {
if(initMpoints[1][1] <= 500 && initMpoints[0][1] >= 0) {
txForC -= 0;
tyForC -= 5; //Move C downward.
txForM -= 0;
tyForM -= 5;
if (initMpoints[0][1] == 0) {
txForC += 0;
tyForC += 5; //Move C downward.
txForM += 0;
tyForM += 5;
}
}
}
glutPostRedisplay();
glutTimerFunc(50, Timer, value);
}
我该如何解决这个问题?
【问题讨论】:
-
这里的代码还没有完全完成。如果我从一开始就做了什么,请告诉我。提前致谢。
-
看来是learn how to use a debugger 的好机会。
-
能贴出更有意义的代码sn-p吗?为什么在
initMpoints[0][1] == 0时撤消对txForC等的更改,而不是简单地从第一个if()语句中排除这种情况?这些变量代表什么?您的代码如何知道某个点何时到达底部?你有没有检查过如果点超过底部位置会发生什么?