1
好的,我有這種算法應該檢測用戶在iPad的屏幕上繪製的球和線之間的碰撞。代碼很簡單:移動的球和線之間的碰撞
for (int i = 1; i < currentPlatform; i++) {
float x1 = xStart[i] -xBall;
float y1 = yStart[i] - yBall;
float x2 = xEnd[i] - xBall;
float y2 = yEnd[i] - yBall;
float dx = x2 - x1;
float dy = y2 - y1;
float dr = sqrtf(powf(dx, 2) + powf(dy, 2));
float D = x1*y2 - x2*y1;
float delta = powf((ball.frame.size.height/2), 2)*powf(dr, 2) - powf(D, 2);
NSLog(@"%f", delta);
if (delta >= 0) {
iDir = (((ballVelocity*(sin(angle[i])))*-1)*kRestitution);//*sin(angle[i]));
jDir = (((ballVelocity*(cos(angle[i]))))*kRestitution*cos(angle[i]));
}
}
唯一的問題是,球穿過線未被發現!在打印三角洲的控制檯中,它會給出-4萬億美元的瘋狂答案!有沒有人看到我在做這個碰撞檢測的錯誤?
這可能不是最好的方法,但如果沒有別的工作,那麼爲什麼不嘗試。 – Jordan 2011-12-23 04:03:43