나는 탁구 게임을하고 있는데 공을 움직여야하고 바깥 경계와 충돌하는 것을 감지해야하고 움직이는 외륜도 가지고 있어야한다. 삼각법이 아닌 벡터를 사용하여 구현하고 싶습니다.벡터 수식을 사용하여 볼을 구현하는 방법은 무엇입니까?
나는 수학이 매우 약해서 친절하게 안내해줍니다.
나는 탁구 게임을하고 있는데 공을 움직여야하고 바깥 경계와 충돌하는 것을 감지해야하고 움직이는 외륜도 가지고 있어야한다. 삼각법이 아닌 벡터를 사용하여 구현하고 싶습니다.벡터 수식을 사용하여 볼을 구현하는 방법은 무엇입니까?
나는 수학이 매우 약해서 친절하게 안내해줍니다.
필요할 때마다 좀 더 구체적인 내용이 필요할 수 있습니다. 알아야 할 핵심 사항은 볼을 튀게 때, 입사각은 반사각과 같습니다. 그러나 게임과 같은 퐁 (pong)에서는 보통 패들이 호인 것처럼 패트의 부분을 기준으로 각도를 변경합니다.
벡터를 사용하는 경우 시작점과 기울기가 있습니다. 시점 화면 (X == 0)의 좌측 일 경우 정상적인 경사 인터셉트 화학식 잘 M은 경사가
Y = mX + B
작동하기 때문에, 당신은 운중인 및 교차 여기서 B는이며 Y 축 (X가 0 인 경우 Y의 값) 그런 다음 X를 약간 증가시키고 Y를 계산합니다. 반환 히트에서는이를 뒤로 할 수 있습니다. 벡터가 완전히 수평 인 경우 m은 0입니다. 그것이 패들에 부딪 칠 때, 입사각 == 반사각을 유지하기 위해서 -m (패들의 위치에 맞게 조정)을 사용해야합니다.
어쨌든 - 질문이 있거나이 대답에 대해 의견을 말하고 질문을 업데이트하면 더 많은 정보를 제공하려고 노력할 것입니다.
GameDev.net에 충돌 감지에 대해 great tutorial이 있습니다. OpenGL 튜토리얼입니다. OpenGL을 사용하는지는 모르겠지만 수학은 동일하므로 유용 할 것입니다.
안녕하세요, 저는 공을 움직이는 2D 벡터를 구현했습니다. 하지만 공이 패들에 부딪쳤을 때 반사각을 찾는 데 어려움을 겪고 있습니다. 외륜은 원호 모양이며 너비가 증가하거나 감소합니다. 일반화 된 코드를 써야 plz가 나를 안내합니다. – Abhijeet
안녕하세요, 루 너무 늦게 답변에 대한 답변을 드려 죄송합니다. 하지만 마침내 저는 공을 움직이기위한 2D 벡터를 구현할 수 있었고 경계로부터 정확하게 반영하고 있습니다. 하지만 지금은 다른 문제에 직면하고 있습니다. "게임과 같은 탁구에서는 대개 패들이 원호 인 것처럼 패의 부분을 기준으로 각도를 변경합니다." 지금까지 공과 외륜의 교차점을 감지 할 수 있습니다. 하지만 나는 반사 각도를 계산할 때 너의 도움이 필요하다. 외륜에 교차점에 따라 다르다. 나는 공의 벡터 각도를 움직이며, pt를 끝냅니다. – Abhijeet
패들의 중심을 0으로, 패들의 끝을 숫자 N으로 취급하십시오. 중심으로부터의 거리에 따라 0과 N 사이의 인수를 찾습니다. 그런 다음 각도를 취하여 (1 + factor)를 곱합니다. N을 사용하여 주위를 놀고 원하는 거리를 찾을 때까지 거리를 요인 (선형, 지수 등)으로 바꾸는 함수를 사용하십시오. –