는 내가 보이는 다각형이있을 때 충돌 검출 기능의 영역을 정의에 대해 이동하는 방법을 모르는 것 같은 : 나는 채우기/스트로크 호출 이전에 lineTo() 몇 번을 이용하여 다각형을 그리원과 다각형 간의 Javascript 충돌 감지?
______
/_____|
//
//
---
그래서 나는 모든 점의 x, y 좌표를 안다. 공 포인트의 특정 영역을 넘어 경우
현재 난 그냥 확인 : platformBottom는 '수평 라인의 Y 값이 될 것이다'최고 수평 라인 '에 대한 Y 값이 될 것이다if(tmpParticle.y <= platformBottom) {
if(tmpParticle.x < leftPipe_middleX || tmpParticle.x > rightPipe_middleX) {
tmpParticle = particleCollision(tmpParticle, platformBottom);
}
}
if(tmpParticle.y <= pipeBottom && tmpParticle.y >= pipeBottom - 30) {
if(tmpParticle.x < leftPipe_bottomRightX && tmpParticle.x > leftPipe_bottomLeftX) {
tmpParticle = particleCollision(tmpParticle, pipeBottom);
} else if (tmpParticle.x < rightPipe_bottomRightX && tmpParticle.x > rightPipe_bottomLeftX) {
tmpParticle = particleCollision(tmpParticle, pipeBottom);
}
}
platformHeight platformHeight 바로 아래에 ' rightPipe *는 예제와 같습니다. leftPipe *는 다른 방향을 제외하고 같은 폴리곤을위한 것입니다 (충돌없이 볼을 통과시켜야하는 파이프를 형성하기 위해).
내 particleCollision() 함수는 tmpParticle을 가져 와서 Y 값 (두 번째 매개 변수 즉 pipeBottom)을 기준으로 방향을 반전합니다. 나중에 그것을 향상시킬 필요가있을 수 있지만 지금은 잘 작동합니다.
충돌 영역을 정의하는 더 좋은 방법을 찾아야합니다.
파이프 부품 (기본적으로 한면으로 표제가 붙은 직사각형과 유사 함)의 경우, 4 포인트 (상단 모서리 + 중간 모서리 + 왼쪽 하단 + 오른쪽 하단)에 대한 좌표를 가져옵니다. 그것으로부터 두 개의 삼각형을 정의하는 것 (너무 어렵지 않아야 함) : 그러면 탐지를 위해 볼록 다각형 알고리즘을 사용합니까? – dan2k3k4
예, 또한 여기를보세요 http://stackoverflow.com/questions/5518940/how-to-get-collision-detection-of-circle-and-triangle – Andrew