Colegio de educacin profesional tcnica del estado de
Veracruz Lic. Jess Reyes Heroles Plantel #165
Modulo: Programacin de videojuegos Docente: Miguel ngel Ramos Grande Alumna: Reina Mndez Daz Carrera: Informtica Matricula: 111650432-3 Tema: Reporte de prctica #13 elaboracin y manipulacin de una imagen Fecha: 16-junio-2014 Tuxpan de Rodrguez Cano Veracruz
PRACTICA 13 Elabora una aplicacin de videojuego donde use formato de archivos para hacer manipulacin de imgenes mediante lectura de imgenes desde archivos.
En esta prctica vamos a realizar un videojuego basado en la programacin de Dev c++ con el uso de archivos con formato de manipulacin de imgenes mediante la lectura de diferentes imgenes. DESARROLLO 1.- Para el desarrollo de la prctica 13 realizamos los siguientes pasos: Abrir Dev-Cpp>Clic en Archivo>Seleccionamos el men Nuevo>Proyecto, como aparece en la imagen siguiente.
2. - Se abrir la siguiente ventana y seleccionamos el men Multimedia>Allegro Application (Static), y escribimos el nombre de nuestro proyecto que es Miniserpiente3.Como se muestra en la imagen de abajo.
Despus tendremos que indicar donde se guardaran los archivos del programa, podemos crear una carpeta para cada juego.
Una vez escrito el nombre nos mostrara un cdigo por defecto, y que tendremos que borrar ya que no nos ser de utilidad para nuestro programa que queremos crear. Volvemos a guardar el programa ahora con el archivo CPP como se muestra en pantalla.
El cdigo que se utilizo es el siguiente /*----------------------------*/ /* Intro a la programac de */ /* juegos, por Nacho Cabanes */ /* */ /* ipj17c.c */ /* */ /* Leer imgenes desde */ /* un fichero */ /* */ /* Comprobado con: */ /* - Djgpp 2.03 (gcc 3.2) */ /* y Allegro 4.02 - MsDos */ /*----------------------------*/
/* -------------- Rutina de inicializacin -------- */ int inicializa() { allegro_init(); // Inicializamos Allegro install_keyboard(); install_timer();
// Intentamos entrar a modo grafico if (set_gfx_mode(GFX_SAFE, ANCHOPANTALLA, ALTOPANTALLA, 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; } set_palette(pal); // e intentamos abrir imgenes imagen = load_pcx("spr_inv.pcx", pal); if (!imagen) { set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); allegro_message("No se ha podido abrir la imagen\n"); return 1; }
// Ahora reservo espacio para los otros sprites nave = create_bitmap(16, 16); marciano1 = create_bitmap(16, 16); marciano2 = create_bitmap(16, 16);
// Y los extraigo de la imagen "grande" blit(imagen, nave // bitmaps de origen y destino , 32, 32 // coordenadas de origen , 0, 0 // posicin de destino , 16, 16); // anchura y altura
// Y termino indicando que no ha habido errores return 0; }
/* ------------------------------------------------ */ /* */ /* -------------- Cuerpo del programa ------------- */
int main() { int fotograma = 1;
// Intento inicializar if (inicializa() != 0) exit(1);
do { // Parte que se repite hasta pulsar tecla
clear_bitmap(screen);
// Dibujo la figura y la nave draw_sprite(screen, imagen, 120, 80); draw_sprite(screen, nave, 70, 150);
// Dibujo un marciano u otro, alternando if (fotograma==1) { draw_sprite(screen, marciano1, 250, 40); fotograma = 2; } else { draw_sprite(screen, marciano2, 250, 40); fotograma = 1; } // Y espero un poco rest(RETARDO);
} while (!keypressed());
destroy_bitmap(imagen); readkey(); return 0; /* Termino con la "macro" que me pide Allegro */ END_OF_MAIN();
Para ejecutar el programa nos vamos a la pestaa Ejecutar>Compilar y Ejecutar o tambin con la tecla (F9), como se muestra en la imagen de abajo.
Al parecer nos manda un error porque no se pudo cargar la imagen que tiene que aparecer en el juego :)
Despus con ayuda del profesor corregimos el error, era que no colocbamos bien la direccin de nuestra imagen Volvimos a ejecutar con F9 Y el programa ejecuto correctamente
CONCLUSION Esta prctica no se ejecut de la manera al principio pero despus con la ayuda de uno de mis compaeros el cdigo nos sali correctamente. Aprendimos a cargar imgenes por medio del lenguaje especificando la ruta e insertar doble diagonal \\ para que el programa no confunda entre una diagonal y dos diagonales.