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]));
}
}
문제는 공이 라인을 통과하지 못하는 것입니다! 그리고 델타가 인쇄 된 콘솔에서 4trillion 같은 미친 대답을합니다! 아무도 내가이 충돌 탐지에 잘못했다는 것을 알고 있습니까?
이 방법이 최선의 방법은 아니지만 다른 방법이 없다면 시도해보십시오. – Jordan