COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO DE VERACRUZ
PLANTEL Lic. Jess Reyes Heroles #165
UNIDAD: 1
NOMBRE DEL ALUMNO: MATRCULA: ROSA VICTORIA CRUZ ALBERTO 111650147- 7
DOCENTE: ING. MIGUEL ANGEL RAMOS GRANDE
MDULO: PROGRAMACION DE VIDEOJUEGOS
CARRERA: GRUPO: SEMESTRE: Profesional Tcnico en Informtica 603 6
TITULO DE LA INVESTIGACIN O TAREA:
PRCTICA NUMERO 8
Evitar los parpadeos, juego miniserpiente 3 mediante aproximaciones
OBSERVACIONES:
http://rosavictoria603.blogspot.mx/
CALIFICACIN Para realizar la prctica numero 8 lo primero que realizamos fue entrar a Dev-Cpp, ya estando en el programa, insert las libreras correspondientes, indique que estoy en allegro, despus inserte las posiciones y le di inicializacin como se puede ver en el cdigo de la siguiente imagen:
Despus creer el mapa que ms bien es como un laberinto por donde tiene que pasar la mini serpiente con dos variables que son las x y las f, donde las f representan las manzanitas y las x son los obstculos como se puede ver en el siguiente cdigo:
Esta es la parte del cdigo donde fui creando y modificando la matriz, como se puede ver en la siguiente imagen:
Esta es la imagen de la continuacin de los tipoSprite
Esta es el cuerpo del cdigo donde declaramos las variables para empezar a crear la mini serpiente en allegro como en la prctica lo pide la serpiente tena que ir creciendo conforme come las frutitas, como se ve en el cdigo de la siguiente imagen:
Esta parte del cdigo es para realizar el fondo del juego:
Esta es la parte del cdigo para poder comer la fruta y ya no aparezca en el juego, conform comindome todas la serpiente pueda crecer y obtener un mensaje donde diga que gane por lo contrario si llego a chocar con una x que el juego es un ladrillo me manda un mensaje donde diga que choque:
Esta es la parte del cdigo que se utiliza para dar pausas a la serpiente para eso se utiliza la funcin while como se ve en la siguiente imagen:
Esta es la parte del cdigo para comprobar si se pulsan las teclas correspondientes para que la serpiente pueda mover adecuadamente:
Ya cuando el programa est correctamente lo podemos ejecutar en las imgenes siguiente se puede ver como quedo y as fue como finalice la prctica numero 8:
CODIGO
#include <allegro.h> /* Posiciones X e Y iniciales */
#define POS_X_INI 16 #define POS_Y_INI 10
#define INC_X_INI 1 #define INC_Y_INI 0
/* Pausa en milisegundos entre un "fotograma" y otro */ #define PAUSA 350
int posX, posY; /* Posicion actual */ int incX, incY; /* Incremento de la posicion */
/* Terminado: Si ha chocado o comida todas las frutas */ int terminado;
/* La tecla pulsada */ int tecla;
/* Escala: relacion entre tama?o de mapa y de pantalla */ #define ESCALA 10
/* Ancho y alto de los sprites */ #define ANCHOSPRITE 10 #define ALTOSPRITE 10
/* Y el mapa que representa a la pantalla */ /* Como usaremos modo grafico de 320x200 puntos */ /* y una escala de 10, el tablero medira 32x20 */ #define MAXFILAS 20 #define MAXCOLS 33
char mapa[MAXFILAS][MAXCOLS]={ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "X X X", "X F X X", "X F X F X", "X XXXXX X X", "X X X X", "X X X X X", "X X X X XXXX", "X X X X", "X X", "X X X", "X F X X", "X X X", "X X F X", "X X X X", "X X X X", "X X F X X", "X F X X X", "X F X", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" };
int numFrutas = 8;
/* Nuestros sprites */ BITMAP *ladrilloFondo, *comida, *jugador; BITMAP *pantallaOculta; /* Y la pantalla oculta */
typedef char tipoSprite[ANCHOSPRITE][ALTOSPRITE]; /* El sprite en si: matriz de 10x10 bytes */
/* Parte repetitiva: */ do { dibujaFondo(); draw_sprite (pantallaOculta, jugador, posX*ESCALA, posY*ESCALA);
terminado = FALSE;
/* Si paso por una fruta: la borro y falta una menos */ if (mapa[posY][posX] == 'F') { mapa[posY][posX] = ' '; numFrutas --; if (numFrutas == 0) { textout(pantallaOculta, font, "Ganaste!", 100, 90, palette_color[14]); terminado = TRUE; } }
/* Si choco con la pared, se acabo */ if (mapa[posY][posX] == 'X') { textout(pantallaOculta, font, "Chocaste!", 100, 90, palette_color[13]); terminado = TRUE; }
/* En cualquier caso, vuelco la pantalla oculta */ blit(pantallaOculta, screen, 0, 0, 0, 0, 320, 200);
if (terminado) break;
/* Compruebo si se ha 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;
/* Peque?a pausa antes de seguir */ rest ( PAUSA );
} while (TRUE); /* Repetimos indefinidamente */ /* (la condici?n de salida la comprobamos "dentro") */