Bru*_*uno 3 collision-detection
我想你对这个问题的建议......
为简单起见,我只考虑x轴.
在10号位置拍摄物体,其宽度也为10个单位,每秒向前移动100个单位,由于帧数较低,每次更新时应移动80个单位.
在调用第一次更新后,其位置现在为90,并且在位置120中存在另一个具有相同大小的对象.
下一次更新,将对象移动到位置170.考虑到我需要实现冲突检测,在Update之前或之后计算冲突,没有一个会起作用.
现在来一个简单的问题......
在这种情况下该怎么办?
做类似的事情:
Position start = destinationPos - currentPos;
for (int i; i < start; i++)
if (IsColliding(movingObj.Position + i, staticObj))
//do the colliding stuff here
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个解决方案,对于这种情况可能没问题,但如果你有x,y,z和很多移动物体怎么办?
我认为另一种解决方案是好的,但我不确定它是否可靠,是让另一个线程在循环中完成所有这些计算.
这个线程就像一个无限循环,并且在每次迭代时我会计算出elapsedTime
我认为非常小的并继续移动并计算碰撞,并且渲染线程会慢得多,会获得当前状态对象,只是渲染它.
你们觉得怎么样?