2011-08-21 2 views
4
나는 아주 기본적인 자동차 이동 시스템을 구현했습니다

에서 약 코너를 표류 :는 자동차/자동차 오버 헤드 레이싱 게임

_velocity.x = Math.cos(angleAsRadians) * _speed; 
_velocity.y = Math.sin(angleAsRadians) * _speed; 

_position.x += _velocity.x; 
_position.y += _velocity.y; 

당신은/증가 속도를 감소시켜 이동 및 각도를 증가/감소에 의해 전원을 켭니다.

드리프트를 추가하면 어떻게하면 더 빠르게 움직일 수 있습니까? 나는 그것을 파악할 수없고 다른 Google 가능 소스 옆에 있습니다.

아이디어가 있으십니까?

+1

현재 두 자유도 (X, Y)가 있으며이 작업을 올바르게 수행하려면 자동차 방향 (요 각도)이 필요합니다. 또한 전후방 체중 균형이 필요할 수 있습니다. – ja72

답변

0

속도 시간의 0.5 % 거리와 같이 "드리프트 계수"를 결정하십시오.

_position.x += (1+coeff)*_velocity.x; -> _position.x += (1+0.005)*_velocity.x; 
_position.x += (1+coeff)*_velocity.y; -> _position.y += (1+0.005)*_velocity.y; 

그래서이 경우 첨가제이며 속도에 기반합니다.

이 계수는 트랙 반경, 모든 레이시 타임 조건 (미끄러 움 등)을 기반으로 가변적 일 수 있으며 x 축과 y 축의 차이가 있으며 더하기 또는 빼기로 무작위로 지정 될 수 있습니다.

2

자동차 물리학은 약간 까다 롭습니다. 필요한 것은 슬립 기반의 물리 엔진을 구현하는 것입니다.

This article은 공정을 매우 잘 설명합니다. 제대로 작동하게하려면 바퀴의 회전과 타이어가 한 방향으로 가고 땅이 다른 방향으로가는 힘의 차이를 고려해야합니다. 이것은 두 가지 힘으로 밝혀졌습니다. 하나는 바퀴의 축에 수직이고 다른 하나는 자동차에 대해 옆으로 움직입니다. 물론

,이 작품의 많은, 그리고 아무것도 할 때 그것이 좋은 좋은 보이는 경우 일반적인 규칙이 인 게임 관련. 그래서, 실제 물리학이 어떻게 이루어 졌는지에 대한 마일리지와 아이디어를 얻을 수 있으며 실제 거래의 믿을만한 팩시밀리를 만들기 위해 적절한 해결책을 취할 수 있습니다.

+0

훌륭한 리소스를 제공합니다! – ja72