[게임 디자인] 레이싱게임 등에서 진행거리 측정
레이싱게임에서
코스의 형태가 불규칙하고 직선거리가 아닌 코스에서
어떤방법으로 플레이어가 코스를 얼마나 이동했는지 확인할 것인가?
실제 WRC와 같은 랠리경기에서 사용하는 체크포인트 방식을 이용하면 된다.
코스의 각 포인트에 체크포인트를 A, B, C, ... 와 같이 n개의 체크포인트를 맵에 배치하고
전체 코스의 길이를 Len이라고 했을 때
각 체크포인트간의 Len은 n-1개의 구간으로 나뉠 수 있으며
플레이어가 시작포인트부터 지나쳐온 체크포인트의 갯수를 pastPointCount라고 하고
가장 최근에 지나친 체크포인트를 recentPoint라고 하자
그럼 지나쳐온 거리는
PointToPointDistance*(pastPointCount-1)+Vector3.distance(player.Position, recentPoint.Position)
먼저 다음 체크포인트를 nextPoint라고 했을 때 남아있는 거리는
PointToPointDistance*(n-pastPointCount-1) +Vector3.distance(Player.Position, nextPoint.Position)
포인트간의 거리가 일정하면 이 방법을 사용하면 되겠지만 아닌 경우에는 각
포인트를 지나칠 때마다 포인트간에 이동한 거리를 하나의 변수에 누적해나간다
댓글
댓글 쓰기