Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2010, 11:07
stiwi222
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 15 años
Puntos: 2
switch y for comportamiento misterioso

bueno, aqui vuelve el pesado de turno :)

bueno, este es el codigo problematico:
Código C:
Ver original
  1. void dibuja_pantalla(SDL_Surface *pantalla, SDL_Surface *imagenes[],
  2.                      SDL_Rect posiciones[][IMAG_Y], char mapa[][IMAG_Y+1]){
  3.  
  4.             for(int i=0; i<=IMAG_X; i++){       //8
  5.                 for(int j=0; j<=IMAG_Y; j++){ //0
  6.                     char ch=mapa[i][j];
  7.                          switch(ch){
  8.  
  9.                              case '.':
  10.                                  dibuja_imagen(posiciones[i][j], imagenes[SUELO],
  11.                                                pantalla, 0);
  12.                                  break;
  13.  
  14.                              case 'h':
  15.                                  dibuja_imagen(posiciones[i][j], imagenes[PARED_H],
  16.                                                pantalla, 0);
  17.                                  break;
  18.  
  19.                              case 'v':
  20.                                  dibuja_imagen(posiciones[i][j], imagenes[PARED_V],
  21.                                                pantalla, 0);
  22.                                  break;
  23.  
  24.                              case '[':
  25.                                  dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_AI],
  26.                                                pantalla, 0);
  27.                                  break;
  28.  
  29.                              case '(':
  30.                                  dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_DI],
  31.                                                pantalla, 0);
  32.                                  break;
  33.  
  34.                              case ']':
  35.                                  dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_AD],
  36.                                                pantalla, 0);
  37.                                  break;
  38.  
  39.                              case ')':
  40.                                  dibuja_imagen(posiciones[i][j], imagenes[ESQUINA_DD],
  41.                                                pantalla, 0);
  42.                                  break;
  43.  
  44.                              case '@':
  45.                                  dibuja_imagen(posiciones[i][j], imagenes[PERSONAJE],
  46.                                                pantalla, 0);
  47.                                  break;
  48.  
  49.                              case 'P':
  50.                                  dibuja_imagen(posiciones[i][j], imagenes[PROFESOR],
  51.                                                pantalla, 0);
  52.                                  break;
  53.  
  54.                              case 'B':
  55.                                  dibuja_imagen(posiciones[i][j], imagenes[BORRADOR],
  56.                                                pantalla, 0);
  57.                                  break;
  58.  
  59.                              case 'T':
  60.                                  dibuja_imagen(posiciones[i][j], imagenes[TIZA],
  61.                                                pantalla, 0);
  62.                                  break;
  63.  
  64.                              case 'C':
  65.                                  dibuja_imagen(posiciones[i][j], imagenes[CONSERJE],
  66.                                                pantalla, 0);
  67.                                  break;
  68.  
  69.                              case '+':
  70.                                  dibuja_imagen(posiciones[i][j], imagenes[PUERTA],
  71.                                                pantalla, 0);
  72.                                  break;
  73.                          }
  74.                 }
  75.             }
  76. }

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.