2009-04-17 3 views

답변

2

필요할 때마다 좀 더 구체적인 내용이 필요할 수 있습니다. 알아야 할 핵심 사항은 볼을 튀게 때, 입사각은 반사각과 같습니다. 그러나 게임과 같은 퐁 (pong)에서는 보통 패들이 호인 것처럼 패트의 부분을 기준으로 각도를 변경합니다.

벡터를 사용하는 경우 시작점과 기울기가 있습니다. 시점 화면 (X == 0)의 좌측 일 경우 정상적인 경사 인터셉트 화학식 잘 M은 경사가

Y = mX + B 

작동하기 때문에, 당신은 운중인 및 교차 여기서 B는이며 Y 축 (X가 0 인 경우 Y의 값) 그런 다음 X를 약간 증가시키고 Y를 계산합니다. 반환 히트에서는이를 뒤로 할 수 있습니다. 벡터가 완전히 수평 인 경우 m은 0입니다. 그것이 패들에 부딪 칠 때, 입사각 == 반사각을 유지하기 위해서 -m (패들의 위치에 맞게 조정)을 사용해야합니다.

어쨌든 - 질문이 있거나이 대답에 대해 의견을 말하고 질문을 업데이트하면 더 많은 정보를 제공하려고 노력할 것입니다.

+0

안녕하세요, 루 너무 늦게 답변에 대한 답변을 드려 죄송합니다. 하지만 마침내 저는 공을 움직이기위한 2D 벡터를 구현할 수 있었고 경계로부터 정확하게 반영하고 있습니다. 하지만 지금은 다른 문제에 직면하고 있습니다. "게임과 같은 탁구에서는 대개 패들이 원호 인 것처럼 패의 부분을 기준으로 각도를 변경합니다." 지금까지 공과 외륜의 교차점을 감지 할 수 있습니다. 하지만 나는 반사 각도를 계산할 때 너의 도움이 필요하다. 외륜에 교차점에 따라 다르다. 나는 공의 벡터 각도를 움직이며, pt를 끝냅니다. – Abhijeet

+0

패들의 중심을 0으로, 패들의 끝을 숫자 N으로 취급하십시오. 중심으로부터의 거리에 따라 0과 N 사이의 인수를 찾습니다. 그런 다음 각도를 취하여 (1 + factor)를 곱합니다. N을 사용하여 주위를 놀고 원하는 거리를 찾을 때까지 거리를 요인 (선형, 지수 등)으로 바꾸는 함수를 사용하십시오. –

1

GameDev.net에 충돌 감지에 대해 great tutorial이 있습니다. OpenGL 튜토리얼입니다. OpenGL을 사용하는지는 모르겠지만 수학은 동일하므로 유용 할 것입니다.

+0

안녕하세요, 저는 공을 움직이는 2D 벡터를 구현했습니다. 하지만 공이 패들에 부딪쳤을 때 반사각을 찾는 데 어려움을 겪고 있습니다. 외륜은 원호 모양이며 너비가 증가하거나 감소합니다. 일반화 된 코드를 써야 plz가 나를 안내합니다. – Abhijeet

관련 문제