2012-04-05 10 views
0

내가 시도하고 내 차의 움직임이 정리 얻기 위해이 사이트에왔다 제대로 이동하지 않습니다. http://www.helixsoft.nl/articles/circle/sincos.htm자동차 내 게임 C++

내가 죄를 사유로 동그랗게 차를 옮기는 데 문제가있었습니다. 사이트에서 고정 소수점 번호를 사용하지만 플로팅을 사용하고 싶지만 정확하게 사용했다고 생각합니다. 포인트.

는 여기에 내가이 운동을 수행하는 방법에 대한 새로운 아이디어에 개방 모르지만,이 벡터를 사용하는 내 코드

if(myEngine->KeyHeld(Key_W)) 
    { 
     length -= carSpeedIncrement; 
    } 
    if(myEngine->KeyHeld(Key_S)) 
    { 
     length += carSpeedIncrement; 
    } 
    if(myEngine->KeyHeld(Key_A)) 
    { 
     angle -= 0.01f; 
    } 
    if(myEngine->KeyHeld(Key_D)) 
    { 
     angle += 0.01f; 
    } 

    carVolocityX = length * (sin(angle)); 
    carVolocityZ = length * (cos(angle)); 

    carPositionX += carVolocityX; 
    carPositionZ += carVolocityZ; 

    car[0]->MoveX((carPositionX * sin(angle)) * frameTime); 
    car[0]->MoveZ((carPositionZ * cos(angle)) * frameTime); 

입니다. 아무도 내가 이것을 잘못 생각할 수는 없습니다.

도움을 주시면 감사하겠습니다. 당신의 차를위한 새로운 위치를 계산하는 동안 속도 벡터를 계산하고 모두 동안

+0

을보십시오. 나는 당신의 질문이 무엇인지 모르겠습니다. –

+0

@bobthemac float 대신 정수를 사용하십시오. –

+0

@EricJ. 내가 버튼을 눌러 회전 할 때 자동차가 중심점을 돌고 있습니다. 나는 자동차 운동처럼 일하고 싶다. – bobthemac

답변

1

는 MoveX 및 MoveZ에 대해 말한 것을 바탕으로, 나는 문제가 당신이 속도를 기대하는 함수의 절대 위치를 통과하려는 생각합니다. 정확히 작동하지 않습니다 무엇

car[0]->MoveX(carVolocityX * frameTime); 
car[0]->MoveZ(carVolocityZ * frameTime); 
+0

감사합니다 모두에게 도움을 주신 덕분에 지금 일합니다. – bobthemac

0

왜 죄와 COS를 신청? 키보드를 사용하여 자동차를 운전하려는 것처럼

코드는 보인다. 그런 경우가 있다면, 나는 그것이 더 명확 거리의 실제 계산시 프레임 - 타임을 적용 할 찾을 것을이

car[0]->MoveX((carPositionX) * frameTime); 
car[0]->MoveZ((carPositionZ) * frameTime); 

주를 시도하고이 편집 제안 : 대신 그냥 원하는 경우

carPositionX += carVolocityX * frameTime; 
carPositionZ += carVolocityZ * frameTime; 

car[0]->MoveX((carPositionX)); 
car[0]->MoveZ((carPositionZ)); 

을 각도에 영향을 미치는 'A'와 'D'를 허용 주위에 원을 이동하지

car[0]->MoveX((carPositionX * sin(angularVelocity * totalTime))); 
car[0]->MoveZ((carPositionZ * cos(angularVelocity * totalTime))); 

당신은 (새) 변수 angularVelocity을 조정 키를 사용하거나 자체에 상수를 할당 할 수 있습니다 작동합니다. 변수 totalTime은 시뮬레이션이 시작된 이후의 총 시간입니다.

+0

이것은 한 지점을 돌면서 계속 작동하지 않습니다. – bobthemac

+0

나는 자연스럽게 보이는 차의 움직임을 얻으 려하고있다. 나는 내가 말한 것과는 분명하다고 생각하지 않는다. 나는 질문에 게시 된 링크에서 자동차 운동을 위해 한 일을 따르려고합니다. – bobthemac

+0

현재 (자동차가 항상 같은 방향을 향하고있는 것을 제외하고) 현재 자연스럽게 보이지 않는 것은 무엇입니까? –