在做一个有地图的小游戏,需要在地图上的地板上停止下落,有碰撞检测。这段函数判断的代码得到true的返回值后应该停止下落,但是我这里却是减速下落,不知道这两个地方有没有问题。如果不是这里的问题,我怀疑是在主循环中有一个yspeed+=1,但是如果去掉这个语句,没遇到障碍也不会下落。要怎么改呢
要是把程序改成这样呢?
if(x >= 0 && !collision(x, y)) { x += xspeed / abs(xspeed); }