这个问题与WPF有关。
我有两个球,一个是静止的,另一个是朝静球方向移动。在碰撞时,球会沿着碰撞决定的方向移动,碰撞时它们会碰撞并相应地移动。
我的问题基本上是建议什么是在WPF中碰撞对象的最简单和最有效的方法,以及在碰撞后为它们提供相应移动的路径。除减速等外,应该采用哪种最佳策略来检测碰撞,并在碰撞后给球门带来新的路径。
答案 0 :(得分:0)
我会计算它们之间的距离(毕达哥拉斯),如果距离小于添加的两个半径,就会发生碰撞。
点击此处查看点之间的角度: Math Calculation to retrieve angle between two points?
答案 1 :(得分:0)
简单地计算出2个球的中心距离。
if (distance(ball1.Center, ball2.Center) <= ball1.Radius + ball2.Radius)
{
// collision
}
对于距离使用:
double x = ball1.Center.X - ball2.Center.X;
double y = ball1.Center.Y - ball2.Center.Y;
double distance = Math.sqrt(x*x + y*y); // pythagoras
要计算新方向,您需要更多数学。查看与XNA一起提供的几何库。再尝试googeling你的问题并在搜索中使用XNA而不是WPF - 我想这会解决你的问题。