我需要实现一点Ai,它可以将冲量施加到刚体上以击中目标。就像炮弹从大炮射出一样。我使用Chipmunk Dynamics作为物理引擎。射弹运动与花栗鼠动力学计算
我的数学是可怕的,因为是我的物理学,但我一直在读了起来,并从那么一点点的帮助,从这个wikipedia entry下面,我得到这个
float x = target.x = launchPos.x;
float y = target.y = launchPos.y;
float g = 9.8;
float v = 100;
float angle1, angle2;
float tmp = pow(v, 4) - g * (g * pow(x, 2) + 2 * y * pow(v, 2));
if(tmp < 0){
NSLog(@"No Firing Solution");
}else{
angle1 = atan2(pow(v, 2) + sqrt(tmp), g * x);
angle2 = atan2(pow(v, 2) - sqrt(tmp), g * x);
}
// Split the velocities
float vVel = v * sin(angle2);
//NSLog(@"Vertical Velocity: %f", vVel);
float hVel = v/cos(angle2);
//NSLog(@"Horizontal Velocity: %f", hVel);
CGPoint force = cpv(hVel, vVel);
应该给我角度,我可以从中计算发射弹丸所需的水平和垂直速度。
但是,它不工作,出于多种原因,这并不令我感到意外。首先,因为我在数学和物理方面很糟糕,但也因为我被其他一些东西所困惑。
这种方法似乎没有考虑到质量。应该是?我会认为这很重要?但之后,我在大学学习艺术,所以我可能会错的。
的Box2D有PTM_RATIO,但我无法找到像,在花栗鼠什么,让我怎么我的值对应于空间坐标花栗鼠?
我知道弧度及其与度数的差异,以及如何在两者之间进行转换。但我应该在哪里使用?我应该将角度1和角度2转换为度数吗?即使我这样做,它仍然不起作用。
总之,关于物理和花栗鼠有很多我不明白。所以我在这里,寻求帮助。
有什么花栗鼠,我可以用它来解决这个问题,或者如果有人必须弄清楚自己,我真的很感谢一些帮助。
你是对的cos(角度)。我也猜测它是cpv(hVel * pmass,vVel * pMass)。这是有道理的,但我仍然没有得到期望的结果。我认为引力可能是问题,我假设花栗鼠将重力模拟为9.8i。 – gargantuan 2010-01-05 20:04:26