Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mancilla_almona en 28 Junio 2010, 02:17 am



Título: Juego Mario bros Allegro
Publicado por: mancilla_almona en 28 Junio 2010, 02:17 am
ola.. una consulta estoy trabajando un juego en allegro y al momento de ejecutar dos players, se pega la pantalla, o al hacer mover un enemigo igual se pega lo estoy trabajando con matrices...

me parece que debo usar temporizadores.. como se usan..

les dejo parte del codigo para que vean como lo estoy trabajando...

Código:
char mapa[MAXFILAS][MAXCOLS]={
  "A                             A",
  "A                             A",
  "A                             A",
  "A    S                 S      A",
  "A                             A",
  "ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSA",
  "XXXXXXXEXXXXXXXXXXXXXXXXXXXXXX ",
  "A S    E                   S  A",
  "A                             A", 
  "ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSA",
  "XXFXXXXXXXXXEXXXXXXFXXXXXXXXXX ",
  "AS          E  S            S A",
  "A                             A",
  "ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSA",
  "XFXXXXXEXXXXXXXXXXXXEXXXXXXXXX ",
  "A      E            E         A",
  "A                             A",
  "ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSA",
  "XXXXFXXXXXXXXEXXXXXXXXXXEXXXXX ",
  "AS           E          E    SA",
  "A                             A",
  "ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSA",                             
  "XXXXXEXXXXXXXXXXXFXXXXXXXXXXXX ",
  "A S  E                        A",
  "A                             A",
  "A       SSSSSSSSSSSSSSSSSSSSSSA",
  "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"                             
};

    for(i=0; i<MAXCOLS; i++)
        for (j=0; j<MAXFILAS; j++)
         {
           if (mapa[j][i]=='X')
           draw_sprite(buffer, nube, i*ESCALA, j*ESCALA);
           if (mapa[j][i]=='F')
           draw_sprite(buffer, ladrillo, i*ESCALA, j*ESCALA);
           if (mapa[j][i]=='S')
           draw_sprite(buffer,mon, i*ESCALA, j*ESCALA);
           if (mapa[j][i]=='E')
           draw_sprite(buffer,esc, i*ESCALA, j*ESCALA);
           if (mapa[j][i]=='L')
           draw_sprite(buffer,suelo, i*ESCALA, j*ESCALA);
          }
//carga objetos

if ( keypressed() )
                 {
                 tecla=readkey()>>8;
                 switch (tecla)
                      {
                        case KEY_UP:
                             if(mapa[posYPLAYER-1][posXPLAYER]=='E')
                                posYPLAYER-=1;
                             if(mapa[posYPLAYER][posXPLAYER]=='E')
                                posYPLAYER-=1;
                             if(mapa[posYPLAYER+1][posXPLAYER]=='E')
                                posYPLAYER-=1;
                             break;
                        case KEY_DOWN:
                             if(mapa[posYPLAYER+2][posXPLAYER]=='E')
                                posYPLAYER+=1;
                             if(mapa[posYPLAYER][posXPLAYER]=='E')
                                posYPLAYER+=1;
                             break;
                        case KEY_LEFT:
                           if(mapa[posYPLAYER][posXPLAYER-1]!='A')
                            posXPLAYER-=1;break;
                        case KEY_RIGHT:
                           if(mapa[posYPLAYER][posXPLAYER+1]!='A')
                            posXPLAYER+=1;break;
                        case KEY_S:
                             posYPLAYER-=2;
                            // draw_sprite (buffer,icono, posXPLAYER*ESCALA, posYPLAYER*ESCALA);
                            // blit(buffer, screen, 0,0,0,0,SCREEN_W,SCREEN_H);
                             posYPLAYER+=2;
                            // draw_sprite (buffer,icono, posXPLAYER*ESCALA, posYPLAYER*ESCALA);
                            // blit(buffer, screen, 0,0,0,0,SCREEN_W,SCREEN_H);
                       }
                 }
  //SOLOO MOVIMIENTO         
  textprintf(buffer,font,1,24,palette_color[14],"Monedas: %d",monedas);
     blit(buffer, screen, 0,0,0,0,SCREEN_W,SCREEN_H);     
   }//fin while




y queda asi.. come las monedas.. igual...

(http://img34.imageshack.us/img34/6072/dibujofjr.jpg)