Unidad de Aprendizaje 2: Diseo de videojuegos Nmero: Prctica 10: Crear juego usando funciones del mouse Propsito de la prctica: Elabora una aplicacin de videojuego que use funciones del mouse para comprobar si se ha hecho un doble clic, o cambiar la forma del puntero, o leer la posicin de la rueda o limitar el movimiento a ciertas zonas de la pantalla. Mdulo: Programacin De Videojuegos [POVI-02] Grupo: 604 Informtica Alumno: Manuel Alexis Hurtado Morales P.S.P: Ing. Miguel ngel Ramos Grande Fecha: 22 de mayo de 2014 Matricula: 111650246-7 Comentarios:
Observaciones:
Direccin del blog: http://programaciondevideojuegosalexis.blogspot.mx/ Pra ctica 10 Punteria #include <stdlib.h> /* Para "rand" */ #include <allegro.h> //En el cuerpo del programa declaramos las variables que vamos a utilizar... int main() { #define ANCHOPANTALLA 320 #define ALTOPANTALLA 200 #define MAXLADODIANA 50 int posXraton = 160, posYraton = 100, posXdiana, posYdiana, ladoDiana, puntos = 0, dibujarDiana = 1; //Inicializamos Allegro... allegro_init(); install_keyboard(); install_timer(); install_mouse(); /* 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; } /* Si todo ha ido bien: empezamos */ srand(time(0)); show_mouse(screen); /* Parte repetitiva: */ do { rest(50); /*Pausa de 50 ms */ if (dibujarDiana) { /*Calculo nueva posicion de la diana */ posXdiana = rand() % (ANCHOPANTALLA - ladoDiana); posYdiana = rand() % (ALTOPANTALLA - ladoDiana); ladoDiana = (rand() % MAXLADODIANA) + 2; /* Oculto raton y redibujo */ scare_mouse(); clear_bitmap(screen); rectfill(screen, posXdiana, posYdiana, posXdiana+ladoDiana, posYdiana+ladoDiana, palette_color[14]); textprintf(screen, font, 4,4, palette_color[13], "Puntos: %d", puntos); /*Vuelvo a mostrar raton y marco como dibujado */ unscare_mouse(); dibujarDiana = 0; } // Si se pulsa el botn, compruebo si es dentro del recuadro. // Si es as, aumento puntos. En cualquier caso,dibujo nueva diana if (mouse_b & 1) { if ((mouse_x >= posXdiana) && (mouse_x <= posXdiana+ladoDiana) && (mouse_y >= posYdiana) && (mouse_y <= posYdiana+ladoDiana)) { puntos ++; } dibujarDiana = 1; } } while ( !keypressed() ); /* Repetimos hasta pulsar tecla */ return 0; } /* Termino con la "macro" que me pide Allegro */ END_OF_MAIN();
Este programa se trat de sumar puntos pulsando cada cuadro que apareca en la pantalla con el mouse. Aprendimos a inicializar el mouse, a desplegar varios cuadritos de distinto tamao con el srand y reforzamos conocimientos como utilizar los ciclos. Se me dificulto el uso del tiempo y asignacin o acumulacin de puntuacin.