2012-09-09 6 views
1

나는이 방법으로 작동하는 간단한 충돌 탐지 스크립트를 만들었습니다 : 영웅과 물체 사이의 거리가 x 픽셀 일 때, 영웅은 x 픽셀을 "걸어 갈"수 있습니다. 물체 (영웅 + 3 픽셀 = 충돌 없음)와 충돌하지 않고 5 픽셀 씩 이동합니다. 하지만 프레임 속도를 고려해 볼 때 경과 시간/20으로 속도를 늘려야합니다. 제 문제는 프레임 속도가 매우 낮거나 높을 때, 그는 단지 추가 픽셀 (1 픽셀)만큼 움직입니다. 기회는 매우 적지 만 여전히 발생할 수 있습니다. 그래서 이것을 방지하려면 어떻게해야합니까?안드로이드 게임 개발 : Framerate & Collisions

+0

스레드에 의한 감지입니까? 프레임 속도가 최대 및 최소 인 경우 어떻게됩니까? –

+0

경과 시간/20 또는 경과 시간 /20.0f 또는 경과 시간 /20.0d? –

+0

히어로가 움직일 때마다 감지 스크립트가 호출되고 스레드는 푸시 된 버튼을 확인하는 checkAction()을 호출합니다. 해당/20f – Carandiru

답변

1

사전 충돌 검사의 끝 부분에 위치 보정을 추가하거나 사전 충돌 검사의 끝 부분에 속도 보정을 추가하십시오.

충돌 후 : 개체가 다시 충돌 지점으로 변환됩니다.

사전 충돌 : 개체 속도가 일시적으로 변경되어 다음 프레임에서 충돌 지점에있게됩니다.

예 :

  • 개체가 75 개 화소 이동하고, 벽을 통해 tunnells. 에 무엇을할까요? 1-iteration-back의 위치 기록이 필요합니다. 역사를 살펴보면 실제로 벽 뒤에 있었고 현재는 위치 - 이제 벽 xx 픽셀을 통과했습니다. 그런 다음 벽 옆에 새 위치를 설정하고 before 그림.
  • 안드로이드가 지연되는시기를 알 수 없습니다 : fps와 독립적으로 개선해야합니다. 방법? fps가 다시 안정 될 때까지 전 세계를 조금만 일시 중지하거나 그림을 그리기 전에 다음 몇 번의 반복을 저장 한 다음 그림을 그리기 전에 계산합니다.
+0

나는 이미 사전 충돌 체크, 하지만 포스트 콜션 체크를 고려해 볼 것입니다! 고맙습니다 :) – Carandiru