안녕하세요, 저는 프로젝트에서 작업하고 있는데, 주 객체를 움직일 때 화면/바닥이 흔들립니다.개체가 움직일 때 화면이 흔들림
일반적으로 "w"버튼으로 움직이면 문제가 없습니다. 하지만 메신저를 돌리는 동안 움직이면 문제가 생깁니다.
보기 : 마우스 오른쪽 버튼을 사용하여 30 정도를주고 (버튼을 놓지 마십시오) 하고 객체를 회전시키면서 w 버튼을 계속 누릅니다. 쉐이크가 바닥에서 보입니다.
문제는 내 looat 함수 계산에 관한 것 같습니다.
gluLookAt(sin(rot*PI/180)*(10-fabs(roty)/4) +movex ,3-(roty/2), cos(rot*PI/180)*(10-(fabs(roty)/4)) +movez , -sin(rot*PI/180)*6 + movex, roty, -cos(rot*PI/180)*6 +movez, 0, 1, 0);
여기 내 회전 기능이 있습니다. 나는이 func 후에 모든 것을 그려 낸다.
void System::rotater(){
if(mouseStates[2][0]==1 && mx!= savex && mx!=mouseStates[2][1]){
rot += (mx-mouseStates[2][1]) * 90/glutGet(GLUT_WINDOW_WIDTH)/2;
if(rot>360)rot-=360;
if(rot<0)rot= 360+rot;
}
glRotatef(rot,0,1,0);
}
그리고 내 이동 옵션 마지막은 여기에 있습니다 : 나는 문제는 이벤트, 업데이트 객체와 카메라를 처리하는 순서와 함께 할 일반적이다 흔들어 보이는 화면을 발견했습니다
if(a==87 || a==119){
movex -= sin(rot*PI/180)/3;
movez -= cos(rot*PI/180)/3;
}
알려지지 않은 바이너리를 다운로드하여 실행하지 마십시오. 꼭 필요한 경우 gitourious, github 등의 pastebin이나 저장소를 통해 전체 소스 코드를 제공하십시오. ** 이진 실행 파일! ** – datenwolf
좋아, 편집하고 전체 소스를 추가했습니다. – nadirg
문제는 sinus cosinus 함수에 관한 것 같습니다. 나는 그들없이 쉐이크를 볼 수 없기 때문에 gluLookAt (movex, 3- (roty/2), movez +5, movex, roty, movez, 0, 1, 0); 하지만 뒤에서 물건을 따라 가야합니다. – nadirg