我需要實現一點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