나는 수학 시간 문제로 인해 놀랍도록 어려움을 겪고 있습니다. 크기 조정이 가능한 LWJGL (OpenGL) 창이 있습니다. 내가 만들고있는 게임은 2D이지만, glFrustum()을 사용하여 스프라이트의 깊이를 얻습니다. 여기 내 투사 코드에서 (조금 단순화) 조각입니다 :크기 조정시 LWJGL 커서 문제
double divider = 64.0;
double left = -vw/divider;
double right = vw/divider;
double bottom = vh/divider;
double top = -vh/divider;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(left * aspect, right * aspect, bottom, top, 8, 65536);
float zModifier = -256;
float vRatio = Game.HEIGHT/Display.getHeight();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-vw/2.0f, -vh/2.0f, zModifier * vRatio);
(내가 아주 잘 프러스 텀 비트를 이해하지 못하는 것을 인정해야한다, 나는 어딘가에 인터넷에이 코드 조각을 발견하고는 봉사했다 나 잘 ...)
그러나 스프라이트로 내 자신의 커서를 렌더링하고 커서가 창 테두리와 접촉 할 때 네이티브 커서로 전환합니다. 창 크기를 조정할 때까지이 모든 작업이 잘되었습니다.
지금 내 문제는, 창의 크기를 조정할 때 네이티브 커서가 vRatio
에 상대적인 스프라이트 커서와 "동기화되지 않음"입니다. 크기가 조정 된 창 크기에 따라 조금씩 또는 '조금씩'점프됩니다.
스프라이트 커서가 국경과 접촉, 나는 다음을 수행하십시오
- 는
- 는
- 커서의 위치 을 (스프라이트 네이티브 커서의 위치를 설정 기본 커서를 표시 스프라이트 커서를 숨기기 이게 더 이상 제대로 작동하지 않습니다.)
나는이 간단한 수학적 해결책이있는 것처럼 느낍니다. 그러나 나는 그럴 수 없습니다. t out (나는 물건을 시험해 보았다. .. 그러나.).
제 질문이 너무 애매하지 않고 충분한 정보를 제공했으면합니다.
크기를 조정할 때'Game.HEIGHT'을 (를) 업데이트하고 있습니까? – corsiKa
아니요, 아닙니다. 크기가 조정 된 창에 게임 영역을 맞추기 위해 약간의 코드를 사용합니다. – n00bster
알겠습니다. 그래서 창문 너비에 어떤 관심이 있습니까? 게임 창에 항상 동일한 w : h 비율, 즉 – corsiKa