2012-04-17 4 views
1

나는 Flare3D를 사용하여 플래시로 3D 게임을 만들고 있으며, 긴 직선 구간과 짧은 직선 구간으로 구성된 트랙이 있습니다. 플레이어는 자유롭게 차를 조종 할 수 있지만 U 턴을하지 않고 트랙을 뒤쪽으로 차는 것을 막을 수 있어야합니다.3D 게임에서 사용자가 자동차를 차선 이탈하는 것을 방지하는 방법

이 작업을 수행하는 방법에 대한 아이디어가 있으십니까?

+0

트랙을 어떻게 구축합니까? – nycynik

+0

트랙은 3D studio max.에서 만든 반복되지 않는 도시 환경입니다. 플레이어는 바퀴가 아닌 한쪽 끝에서 다른 쪽 끝으로 겨루어집니다. –

답변

4

AS3 구문을 모르지만 각 세그먼트 (적어도 직선 세그먼트) 및 허용되는 편차의 이동 방향을 정의하는 것이 일반적입니다. 그런 다음 플레이어의 방향이 이탈률을 벗어나면 코스를 다시 돌리거나 충돌을 일으키거나 원하는 것을 선택합니다.

예 :

직선 트랙 세그먼트는 30도이다. 편차는 +20입니다. 당신의 엉덩이를 걷어차 기 전에 사용자의 방향은 10도에서 50도 사이가 될 수 있습니다.

2

한 가지 방법은 트랙을 분할하는 것입니다. 트랙의 각 세그먼트에 대해 방향이 바뀝니다. (즉, 부는 말한 것처럼) 트랙이 북쪽을 향하고 0/360 인 경우, 그 지점의 트랙 세그먼트는 0이됩니다. 첫 번째 턴을 마친 후, 90 도가 오른쪽이라고 말하면 그 시점의 트랙의 값은 90이됩니다.

충분한 세그먼트, 그리고 그들은 모두 방향을 가지고 있습니다. 그러면 당신이 할 수있는 일이 앞으로의 일입니다. 따라서 세그먼트 10에 있으면 세그먼트 11을보고 해당 세그먼트 값을 부 (+/- 20도)가 가리키는 한계로 사용하십시오. 그것은 턴에있는 동안 가지고있는 모든 문제를 해결할 수 있으며, 턴을 통해 조종 할 수 있지만 여전히 충돌 할 수 있습니다.

여기에는 현재 세그먼트가 있고 세그먼트가 하나만 있다고 가정합니다. 트랙에 선택 사항이있는 경우이를 채택해야 할 수도 있습니다. 그들은 천천히 주위에 차를 설정하려고하면 또한

,

, 나는 우우에 동의합니다. 도로에서 차의 각도를 확인하고 변경 사항 만 허용하십시오. 바퀴를 돌릴 때까지 바퀴를 돌리도록 소리를 추가하여 더 이상 회전하지 않는 이유를 이해할 수 있도록하십시오.

시도 할 때 빠르게 움직이는 경우 크래시 애니메이션을 추가 한 다음 다시 궤도에 올라서게됩니다. 사용자는 잘못했을 때 충돌하는 것을 피하는 법을 배웁니다.

+0

나는 당신과 내가하는 말의 원칙에 동의한다. 그들이 얼마나 멀리 돌아 서서 그들이 멀리 돌지 말아야하는지 알아 낸다. 그러나 나는 그 일을 어떻게해야하는지 명확하지 않습니다. 트랙에 일반 세그먼트가 없습니다. 어떻게 든 각도를 파생시키기 위해 법선이나 충돌 데이터를 사용하여 세계를 여론 조사하는 방법이 필요합니다. –

+0

나는 세계 좌표계에 차를 가지고 있다고 가정하고, 차 방향을 나타내는 벡터를 가지고있다. 그 벡터도 세계 좌표로 변환해야합니다. 부품을 사용하면 언제든지 자동차가 나아갈 방향을 결정할 수 있습니다. 또한 도로의지도를 만들어야하며, 도로가 겹치지 않는 한 2 차원으로 단순화 될 수도 있습니다. 그것으로, 당신은 그것이 어떻게 작동 할 것인가를 구분할 필요가 있습니다. 나는 방향을 결정하기 위해 궤도에 반응하는 간단한 방법이 있다고 생각하지 않는다. – nycynik

관련 문제