有时我们让一个物体移动的时候难免会有物体移动太快一下超过判定范围的情况,比如我有一个1像素在屏幕中间的挡板,一个小球以10像素每帧的速度要撞上挡板,但是速度太快,越过去了没有发生碰撞。那么怎么办呢?
大体思路是每一帧中让小球1像素1像素的移动,每一次移动过后判断是否撞上了,如果没撞上继续移动1像素,撞上了的话直接break。
下面请看代码:
for (int i = 0 ; i<speed; i++) {
if (sp->getPositionY()/32<1.55) {
break;
}
sp->setPositionY(sp->getPositionY()-1);
}
其中if里面的时我判断的条件,大家可以自行改成其他判断语句。