想要确定两个光盘是否相互接触

时间:2013-10-22 16:13:50

标签: c++ c visual-studio-2010 visual-c++ collision-detection

我有两张可以在键盘帮助下单独移动的光盘。两个光盘代表两个播放器,我想编码:

  1. 如果disc1接触disc2,那么disc2的大小会减少一点
  2. 两张光碟都不应该离开屏幕

1 个答案:

答案 0 :(得分:1)

鉴于它们是光盘,碰撞检测实际上非常简单明了。给定两个半径为R 1 且R 2 的圆盘,如果两个对象的中心之间的距离小于或等于R 1 + R 2 ,然后他们发生了碰撞。

您可以使用毕达哥拉斯定理计算两个中心点之间的距离:距离等于ΔX平方和ΔY平方之和的平方根。

如果你经常这样做,你可能想避免那个平方根。幸运的是,这非常简单:将两个半径的总和平方,并将其与delta X和delta Y的平方和进行比较。