Colegio de educacin profesional tcnica del estado de Veracruz.
Plante #165 Lic. Jess Reyes Heroles
Mdulo: Programacin De Videojuegos Docente: Miguel ngel Ramos Grande Alumno: Manuel Alexis Hurtado Morales. Carrera: Informtica Matricula: 111650246-7 Prctica 7: Crear juego mini-serpiente 2 usando lenguaje de programacin Propsito de la prctica: Elabora una aplicacin de videojuego con figuras multicolor usando lenguaje de programacin para que las figuras se muevan Direccin del blog: http://programaciondevideojuegosalexis.blogspot.mx/
1.- Para la elaboracin de esta prctica lo primero que realice es: Abrir Dev-Cpp Damos clic en ARCHIVO Seleccionamos el men NUEVO Enseguida damos clic en PROYECTO
2. - Se abrira la siguiente ventana y seleccionamos el men siguiente:
//Iniciamos alegro para empezar nuestro video juego de la mini serpiente: #include <allegro.h> //Definimos posiciones iniciales. #define POS_X_INI 16 #define POS_Y_INI 10 #define INC_X_INI 1 #define INC_Y_INI 0 //Realizamos una pausa en milisegundos. #define PAUSA 300
//Definimos nuestras teclas a utilizar en este caso sern nmeros de nuestro teclado por lo tanto agregamos _PAD. #define TEC_ARRIBA KEY_8_PAD #define TEC_ABAJO KEY_2_PAD #define TEC_IZQDA KEY_4_PAD #define TEC_DCHA KEY_6_PAD //Posicion Actual. int posX, posY; //Incremento en la posicion. int incX, incY; //Variable que identifica si ha chocado o si ha comido todas las frutas. int terminado; //Detecta si pulsamos alguna tecla. int tecla; //Define escala entre el tamao del mapa y de la pantalla. #define ESCALA 10 //Ancho y alto de los Sprite. #define ANCHOSPRITE 10 #define ALTOSPRITE 10 //Filas y columnas a utilizer en nuestro codigo #define MAXFILAS 50 #define MAXCOLS 63 //Mapa del video juego, imprimimos pantalla ya que copiando el codigo se desconfigura char mapa[MAXFILAS][MAXCOLS]={
ladrilloFondo = create_bitmap(10, 10); clear_bitmap(ladrilloFondo); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(ladrilloFondo, i, j, palette_color[ spriteLadrillo[j][i] ]);
comida = create_bitmap(10, 10); clear_bitmap(comida); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(comida, i, j, palette_color[ spriteComida[j][i] ]);
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] ]);
} Rutina de dibujar el fondo. void dibujaFondo() { int i, j; clear_bitmap(screen); for(i=0; i<MAXCOLS; i++) for (j=0; j<MAXFILAS; j++) {
if (mapa[j][i] == 'X') draw_sprite(screen, ladrilloFondo, i*ESCALA, j*ESCALA); if (mapa[j][i] == 'F') draw_sprite(screen, comida, i*ESCALA, j*ESCALA); } } //Cuerpo del programa int main() { allegro_init(); install_keyboard(); install_timer(); //Entramos a modo Grafico. if (set_gfx_mode(GFX_SAFE, 600, 300, 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; } creaSprites(); dibujaFondo(); //Valores iniciales. posX = POS_X_INI; posY = POS_Y_INI; incX = INC_X_INI; incY = INC_Y_INI; Parte repetitiva. do { dibujaFondo();
draw_sprite (screen, 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(screen, font,"Ganaste!", 100, 90, palette_color[7]); terminado = TRUE; } } //Si la serpiente topa con pared, se acabo el juego. if (mapa[posY][posX] == 'X') { textout(screen, font,"Chocaste!", 100, 90, palette_color[7]); terminado = TRUE; } if (terminado) break; //Se comprueba 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; //Pequea pausa antes de continuar. rest ( PAUSA ); } //Repetimos indefininamente while (TRUE);
readkey(); return 0; }END_OF_MAIN(); Programa compilado:
Conclusin: en esta prctica se llevaron a cabo grficos, y la utilizacin de repeticin tanto pausas y diversos procedimientos nuevos, como la creacin de los ladrillos y las frutas utilizando putpixeles y matrices.
Se nos dificulto un poco el uso de putpixeles, pero al final logramos el ejercicio.
GLOSARIO: Sprite: un sprite es un grfico pequeo que se dibuja en cualquier parte de la pantalla Putpixel: Esta funcin es usada para asignar el valor del color a un pxel en particular. La posicin del pxel en cuestin est especificado por los argumentos x e y. El argumento color especifica el valor del color del pxel.