我已经创建了一个非常简单的数值模拟,它模拟一个物体以某个角度从建筑物中抛出,当物体撞击地面时,模拟停止。现在我想添加碰撞检测。我该怎么做呢? 我知道我需要找到物体(球)撞击地面的确切时间,以及x和y方向的速度,以及物体撞击地面时的位置,我必须添加参数这就是说球会在撞击时反弹多少。但我不知道该怎么做。我知道有各种方法来检测碰撞,但由于我是新手,所以最容易理解的方法是最好的。
答案 0 :(得分:1)
建立一个坐标系,地面为y = 0。跟踪球飞行时的坐标,然后检查它何时有y = 0,那就是它撞到地面的位置。您还可以在球移动时跟踪x和y速度。
使用物理技能。 This是一个很好的教程。如果你有,我推荐Halliday,Resnick和Walker的物理基础。他们有很好的章节。
答案 1 :(得分:1)
如果您只是在寻找数学,那么您可以为其编写C代码。我发现这个有用。 Math Models
答案 2 :(得分:0)
碰撞检测只涉及确定两个物体之间的距离。
如果您只对对象与地面之间的碰撞感兴趣,可以使用:
if(object.y <= ground.y) {
//collision occurred
}
要在对象之间进行碰撞,您可以循环遍历所有对象并以相同的方式将它们相互比较。