2013-01-09 4 views
1

OpenGL에서 게임을 만드는 초보자입니다. 나는지도를 그렸습니다. (플레이어가 움직일 수있는 세계입니다.) 이제 카메라가 플레이어를 따라갑니다 (플레이어가 화면 중앙에 있음). 이 같은 짓을했습니다 this.x와 this.y는 플레이어의 좌표2D 게임에서 카메라 위치 변경 OpenGL

GLU.gluLookAt(gl, 
       this.x, this.y, 0, 
       this.x, this.y, 1.0f, 
       0.0f, 0.0f, 0.0f); 

. 단지 전화가

답변

1

당신이 몇 가지 방법을 할 수있는 perpective 등은 아니지만 가장 쉬운 아마 그래서 불행히도 그것은 작동하지 않습니다 :(아무런 변화가 없습니다. 이 2D 게임이다

gl.glTranslatef(cameraX, cameraY); 

당신의 glLoadIdentity 함수 호출 후하지만 프레임을 렌더링하기 전에.

glTranslatef 그렇게 장면에서 모든 것이 cameraX 및 cameraY에 의해 상쇄 그려집니다 누적 효과가 있습니다.

한 캐치는이를 위해 당신이 할 필요가 작동하는 것입니다 엠 glLoadIdentity를 호출하지 않고 glPushMatrix와 glPopMatrix를 사용하면 각 객체를 렌더링하기 전에 카메라 번역이 느슨해집니다.

거대한 세계를 계획하고 있다면 플레이어의 위치를 ​​0,0으로 만들고 플레이어 대신 전 세계를 움직여야합니다. 작은 게임이라면 커다란 문제는 아니지만 객체의 x와 y 값이 실제로 커지면 부동 소수점 반올림 오류로 문제가 발생할 수 있습니다. 네가 도망가는 어떤 것이 아닐지 모르지만 내가 아는 것이 좋다.

+0

예를 들어 주시겠습니까? 그것은 단지 내 경우에 처음으로 이동 :( – D4rWiNS