bueno, este es el codigo problematico:
Código C:
Ver original
void dibuja_pantalla(SDL_Surface *pantalla, SDL_Surface *imagenes[], SDL_Rect posiciones[][IMAG_Y], char mapa[][IMAG_Y+1]){ for(int i=0; i<=IMAG_X; i++){ //8 for(int j=0; j<=IMAG_Y; j++){ //0 char ch=mapa[i][j]; switch(ch){ case '.': dibuja_imagen(posiciones[i][j], imagenes[SUELO], pantalla, 0); break; case 'h': dibuja_imagen(posiciones[i][j], imagenes[PARED_H], pantalla, 0); break; case 'v': dibuja_imagen(posiciones[i][j], imagenes[PARED_V], pantalla, 0); break; case '[': dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_AI], pantalla, 0); break; case '(': dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_DI], pantalla, 0); break; case ']': dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_AD], pantalla, 0); break; case ')': dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_DD], pantalla, 0); break; case '@': dibuja_imagen(posiciones[i][j], imagenes[PERSONAJE], pantalla, 0); break; case 'P': dibuja_imagen(posiciones[i][j], imagenes[PROFESOR], pantalla, 0); break; case 'B': dibuja_imagen(posiciones[i][j], imagenes[BORRADOR], pantalla, 0); break; case 'T': dibuja_imagen(posiciones[i][j], imagenes[TIZA], pantalla, 0); break; case 'C': dibuja_imagen(posiciones[i][j], imagenes[CONSERJE], pantalla, 0); break; case '+': dibuja_imagen(posiciones[i][j], imagenes[PUERTA], pantalla, 0); break; } } } }
el problema viene al entrar al switch, algo que solo hace cuando i=8 y j=0, hasta entonces se pasa el tiempo pasando olimpicamente de el.
gracias por adelantado.