14/01/13 6:22
genni_96
Si, scusa me ne ero dimenticato
Funzione chiamata all'inizio
funzione di disegno generale
disegno di un singolo sprite
Non ho postato tutto il sorgente perchè sarebbe stato troppo lungo, comunque la variabile level contiene tutti gli sprite da disegnare quindi la funzione level.Draw() richiama tante volte quella per diseganre ogni sprite.
Funzione chiamata all'inizio
SDL_Init(SDL_INIT_EVERYTHING); atexit(SDL_Quit); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1); screen = SDL_SetVideoMode(800, 600, 16, SDL_OPENGL|SDL_FULLSCREEN); if(!screen) return false; glClearColor(0, 0, 0, 0); glEnable(GL_TEXTURE_2D); glViewport(0, 0, 800, 600); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, 2560, 1440, 0, -1, 1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glEnable(GL_BLEND); glDisable(GL_DEPTH_TEST); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
funzione di disegno generale
if(SDL_GetTicks()-iOldTime >= 15) { glClearColor(0.3, 0.3, 0.3, 1); glClear(GL_COLOR_BUFFER_BIT); Events(); level.Draw(); SDL_GL_SwapBuffers(); iOldTime = SDL_GetTicks(); }
disegno di un singolo sprite
glBindTexture(GL_TEXTURE_2D, texture[currentFrame]); glBegin(GL_QUADS ); glTexCoord2i(0, 0); glVertex3f(boundingBox.p1.x, boundingBox.p1.y, 0); glTexCoord2i(1, 0); glVertex3f(boundingBox.p2.x, boundingBox.p1.y, 0); glTexCoord2i(1, 1); glVertex3f(boundingBox.p2.x, boundingBox.p2.y, 0); glTexCoord2i(0, 1); glVertex3f(boundingBox.p1.x, boundingBox.p2.y, 0); glEnd();
Non ho postato tutto il sorgente perchè sarebbe stato troppo lungo, comunque la variabile level contiene tutti gli sprite da disegnare quindi la funzione level.Draw() richiama tante volte quella per diseganre ogni sprite.
aaa