전 사실 아이폰으로는 이미 온라인 게임을 만들 만큼
열렸지엘을 엔진화 시켜서 사용하고 있습니다만,
안드로이드는 도무지 감이 안잡혀서 시간만 보내고 있습니다.
첫번째로 궁금한 것이 열렸지엘을 쓰면 캔버스처럼 서피스뷰가 생기는데요.
이게 각 폰별로 해상도가 어찌되냐는 겁니다.
아이폰 같은 경우는 기본 320x480이고 아이폰4는 스케일을 2배로 늘려서 640x960을 쓰게 돼 있습니다.
아시는 분은 답변 좀 부탁드려요.
이 답변이 올라오면 그걸 바탕으로 지금 만드는 소스를 수정해서 이미지 뿌리는거까지 소스를 올리겠습니다.
저도 800*480 이상에서만 돌아가는 게임을 만드느라 초기영역을 800*480으로 잡아놓고 그 이상의 해상도라면
onsurfacechanged();에서 단말기 사이즈를 받아와 뷰포트를 이용해서 화면을 채우는 방식을 사용중입니다
저는 gl.glOrthof(0.0f, 800.0f, 480.0f, 0.0f, 1.0f, -1.0f); 영역 설정해주고
gl.glViewport(0, 0, width, height); 화면을 가득 채워버렸어요..
흠.... 열렷지엘 쓰면 모든 길이 단위가 dip으로 나오네요...
TouchEvent 좌표도 dip단위로 나오고....
getWindowManager().getDefaultDisplay().getWidth() 이것도
일반 어플에서 실제 픽셀값이 나오던데 이것도 dip단위로 출력이 되네요 ;;
베라뷰님께서 언급해 주셨는데 저도 글을 남겨 볼께요.
전 그냥 책의 내용을 인용해 보려 합니다.
"onSurfaceChanged는 표면(surface)의 크기가 변경되었을 때 호출되는 메소드로 어플리케이션은
뷰포트(viewport)를 설정하고, 일반적으로 투영 변환을 위한 값을 설정한다.
앞서 언급한 것과 같이 뷰포트란 OpenGL ES의 파프라인 마지막 단계에 적용되는 변환으로
2D 이미지를 윈도우 영역에 그리기 위한 사각 영역을 말한다.
통상적으로 원도우 영역 전체를 설정하는데, GLSurfaceView는 자신의 윈도우 영역 크기를 렌더링 객책의
SurfaceChanged 인자로 전달하기 때문에 30행과 같이 이 영역을 그대로 GL10.glViewport로
전달함으로서 뷰포트를 설정할 수 있다.
public abstract void glViewport (int x, int y, int width, int height) "
^^




콜백으로 onSurfaceCreated -> onSurfaceChanged 이렇게 오는데
onsurfacechanged에서 오는 width,height를 사용하는 것이 통상적일 듯 한데
다른 방법이 있다손 치더라도 효율성면에서는 드다지 추천하지 않는 듯 합니다.