Alumnos: Helen Karina Garcs Ramrez Reina Mndez Daz
Grupo: 604
Carrera: Informtica
Reporte de practica 6
Actividad En Equipo PRACTICA 6 REPORTE Crea juego Mini Serpiente 1 con uso de Mapas. Para empezar nuestro cdigo debemos de declarar la siguiente librera: #include <allegro.h>
Definiremos las posiciones iniciales de X y Y como se muestra a continuacin. #define POS_X_INI 16 #define POS_Y_INI 10 #define INC_X_INI 1 #define INC_Y_INI 0 Definiremos la pausa en milisegundos entre un fotograma y otro. 6 #define PAUSA 350 Definiremos las teclas que sern usadas para mover al jugador. #define TEC_ARRIBA KEY_W #define TEC_ABAJO KEY_S #define TEC_IZQDA KEY_A #define TEC_DCHA KEY_D Declararemos las variables de la posicin actual y el incremento de la posicin. int posX, posY; int incX, incY; Declaramos la variable que vamos a pulsar para almacenar la Tecla pulsada. int tecla; Definimos la escala entre el tamao de mapa y de la pantalla. #define ESCALA 10 Definimos en ancho y el alto de los Sprites. #define ANCHOSPRITE 10 #define ALTOSPRITE 10 Disearemos nuestro Sprites usando un BITMAP y despus formaremos nuestro sprite. /* Nuestro sprites */ BITMAP *jugador; typedef char tipoSprite[ANCHOSPRITE][ALTOSPRITE]; /* El sprite en si: matriz de 30x30 bytes */ tipoSprite spriteJugador = {{0,0,3,3,3,3,3,0,0,0}, {0,3,1,1,1,1,1,3,0,0}, {3,1,1,1,1,1,1,1,3,0}, {3,1,1,1,1,1,1,1,3,0}, {3,1,1,1,1,1,1,1,3,0}, {3,1,1,1,1,1,1,1,3,0}, {0,3,1,1,1,1,1,3,0,0}, {0,0,3,3,3,3,3,0,0,0} }; Crearemos la rutina para crear los sprites. void creaSprites() { int i, j; jugador = create_bitmap(10, 10); clear_bitmap(jugador); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(jugador, i, j, palette_color[ spriteJugador[j][i] ]); } Crearemos la rutina para dibujar el fondo. void dibujaFondo() { int i, j; clear_bitmap(screen); } Ahora crearemos el cuerpo del programa. int main() { allegro_init(); /* Inicializamos Allegro */ install_keyboard(); /*Instalamos keyboard para hacer uso del teclado*/ install_timer(); Intentamos entrar a modo grafico. if (set_gfx_mode(GFX_SAFE, 320, 200, 0, 0) != 0) { set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); allegro_message( "Incapaz de entrar a modo grafico\n%s\n", allegro_error); return 1; } Si todo va bien hasta aqu empezamos mandamos a llamar las funciones de nuestros sprites y las del fondo de la pantalla. creaSprites(); dibujaFondo(); Mandamos a llamar nuestros valores iniciales del jugador. posX = POS_X_INI; posY = POS_Y_INI; incX = INC_X_INI; incY = INC_Y_INI; Esta es la parte en la que se repite. do { dibujaFondo(); draw_sprite (screen, jugador, posX*ESCALA, posY*ESCALA); Hacemos la comprobacin de que si se a pulsado alguna tecla. if ( keypressed() ) { tecla = readkey() >> 8; switch (tecla) { case TEC_ARRIBA: incX = 0; incY = -1; break; case TEC_ABAJO: incX = 0; incY = 1; break; case TEC_IZQDA: incX = -1; incY = 0; break; case TEC_DCHA: incX = 1; incY = 0; break; } } posX += incX; posY += incY; Hacemos una pequea pausa antes de seguir. rest ( PAUSA ); } while (TRUE); En esta parte repetimos indefinidamente readkey(); return 0; } Terminamos con la "macro" que nos pide Allegro END_OF_MAIN();