ES : 이전 응답에 Best approach for oldschool 2D zelda-like game이안드로이드 OpenGL은이 질문에 다음과 같은 간단한 타일 발전기 성능 문제
감사를하고, http://insanitydesign.com/wp/projects/nehe-android-ports/에서 큰 영감, 난 내 간단한 2 차원 젤다 같은 게임 프로젝트에 대한 간단한 타일 생성기를 구축하기 시작 .
필자는 동일한 질감의 타일을 사용하여지도를 생성 할 수 있으며, 수평 및 수직 타일을 그리기 위해 2 개의 (.) 겹쳐진 반복을 사용하고 기본 DPAD 키 입력 수신기를 사용하여 x 및 y 축을 스크롤 할 수 있습니다.
하지만 이제는 첫 번째 성능 문제가 발생하여 하나의 텍스처와 하나의 모델 만 있습니다.
10x10지도를 만들려고 할 때 스크롤이 부드럽고 매끄 럽습니다.
50x50으로 시도하면 사태가 악화되고 100x100에서는 허용되지 않습니다.
내지도 세트의 '보이는'부분을 렌더링하고 숨겨진 타일을 무시하도록 OpenGL에 지시하는 방법이 있습니까? 나는 완전히 새로운이에요.
메신저 2D 스타일의 느낌 카메라와 관점을 설정
GLU.gluLookAt(gl, cameraPosX, cameraPosY, 10.0f,cameraPosX, cameraPosY, 0.0f, 0.0f, 1.0f, 0.0f);
를 사용하여.
어떤 도움이 필요합니까? :)
for (int j = 0; j < 10; j++) {
for (int i = 0; i < 10; i++) {
gl.glPushMatrix(); // Sauvegarde la matrice sur le stack
//Bind the texture according to the set texture filter
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[filter]);
//Set the face rotation
gl.glFrontFace(GL10.GL_CW);
//Enable texture state
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
//Enable vertex state
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
//Point to our vertex buffer
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
//point to our texture buff
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
//Draw the vertices as triangle strip
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length/3);
//Disable the client state before leaving
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glTranslatef(1.0f, 0.0f, 0.0f); // on avance d'une tile
}
// on va commencer a dessiner la 2e ligne
gl.glPopMatrix(); // Rappelle la matrice sur le stack
gl.glTranslatef(0.0f, -1.0f, 0.0f);
}
메타 아이디어가 나를 위해 일 해준 덕분에 :) – Dullahx