Sie sind auf Seite 1von 4

Prctica 10

Crear juego usando funciones del mouse.


Propsito: 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 pantalla.
En la presente prctica se realiz un videojuego que al dar clic en la figura, se moviera de lugar, y
apareciera en otra parte de la pantalla, todo mediante el manejo del mouse.
Se dibuja un recuadro en la pantalla con posicin y medidas al azar, despus de comprueba si se
pulsa el ratn, si se pulsa el ratn dentro del recuadro se da un punto al jugador.

Aun que se pulse el ratn en cualquier lado el recuadro se dibuja en cualquier otro lado de la
pantalla. Esto termina hasta que se pulsa una tecla. A continuacin se muestra el cdigo
empleado:
#include <stdlib.h> /* Para "rand" */
#include <allegro.h>
#include <stdio.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,
posXcuadro,
posYcuadro,
ladocuadro,
puntos = 0,
dibujarcuadro = 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 (dibujarcuadro) {
/*Calculo nueva posicion de la diana */
posXcuadro = rand() % (ANCHOPANTALLA - ladocuadro);
posYcuadro = rand() % (ALTOPANTALLA - ladocuadro);
ladocuadro = (rand() % MAXLADODIANA) + 2;
/* Oculto raton y redibujo */
scare_mouse();
clear_bitmap(screen);
rectfill(screen, posXcuadro, posYcuadro, posXcuadro+ladocuadro, posYcuadro+ladocuadro,
palette_color[5]);
textprintf(screen, font, 10,20, palette_color[6], "Puntos: %d", puntos);
/*Vuelvo a mostrar raton y marco como dibujado */
unscare_mouse(); dibujarcuadro = 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 >= posXcuadro) && (mouse_x <= posXcuadro+ladocuadro) && (mouse_y >=
posYcuadro) && (mouse_y <= posYcuadro+ladocuadro))
{
puntos ++;
}
dibujarcuadro = 1;
}
}
while ( !keypressed() );
/* Repetimos hasta pulsar cualquier tecla */
/*Haciendo que salgamos inmediatamente del juego*/
return 0;
}
/* Se termina el programa */

CONCLUSIN:
En esta prctica entendimos que cada funcin empleada es indispensable y que tambin es
importante manejar con el puntero y el teclado con cdigos por cualquier desperfecto en el
equipo.

Das könnte Ihnen auch gefallen