Está en la página 1de 7

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO

DEVERACRUZ
LIC. JESUS REYES HEROLES


ALUMNA: Emma Graciela Santos Blanco
COMPAERO DE EQUIPO: ngel Martnez Hernndez


GRUPO: 604
Practica: 10
MATRICULA: 111650076-8
CARERRA: P.T.B. en Informtica

MODULO: Programacin de videojuegos

DOCENTE: Miguel ngel Ramos Grande


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.
Prctica 10
Crear juego usando funciones del mouse.
INTRODUCCION:
Mostraremos como realizamos la prctica nmero 11, la gua da un link al que
entramos y nos dar el cdigo de la prctica del cual nos guiaremos para realizarla o
corregiremos errores si es que lo requiere.
DESARROLLO:
Este es el cdigo que la practica nos dio:
#include <stdlib.h> /* Para "rand" */
#include <allegro.h>


/* ------------------------------------------------ */
/* */
/* -------------- Cuerpo del programa ------------- */

int main()
{

#define ANCHOPANTALLA 320
#define ALTOPANTALLA 200
#define MAXLADODIANA 50

int
posXraton = 160,
posYraton = 100,
posXdiana,
posYdiana,
ladoDiana,
puntos = 0,
dibujarDiana = 1;

allegro_init(); /* Inicializamos Allegro */
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 ratony 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();

Le cambiamos algunas cosas, como los colores de los textos, cambiamos comentarios y
algunas variables.
Y quedo de la siguiente manera:
#include <stdlib.h> /* Para "rand" */
#include <allegro.h>
#include <stdio.h>
/*Declaramos las variables que vamos a utilizar...*/
int main()
{
#define ANCHOPANTALLA 320
#define ALTOPANTALLA 200
#define MAXLADODIANA 50
int
Xraton = 160,
Yraton = 100,
Xcuadro,
Ycuadro,
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 */
Xcuadro = rand() % (ANCHOPANTALLA - ladocuadro);
Ycuadro = rand() % (ALTOPANTALLA - ladocuadro);
ladocuadro = (rand() % MAXLADODIANA) + 2;
/* Oculto raton y redibujo */
scare_mouse();
clear_bitmap(screen);
rectfill(screen, Xcuadro, Ycuadro, Xcuadro+ladocuadro, Ycuadro+ladocuadro,
palette_color[10]);
textprintf(screen, font, 10,20, palette_color[16], "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 >= Xcuadro) && (mouse_x <= Xcuadro+ladocuadro) && (mouse_y >=
Ycuadro) && (mouse_y <= Ycuadro+ladocuadro))
{
puntos ++;
}
dibujarcuadro = 1;
}
}
while ( !keypressed() );
/* Repetimos hasta pulsar cualquier tecla */
/*Haciendo que salgamos inmediatamente del juego*/
return 0;
}
/* Se termina el programa */
Ejecutamos el programa con F9 y nos mandara la pantalla ejecutable.
El juego tratara de lo siguiente, se dibujara un recuadro en la pantalla con posicin y
medidas al azar, despus se comprueba al dar clic al ratn, si se pulsa el ratn dentro
del recuadro se da un punto al jugador.

Aunque se de clic en cualquier lado el recuadro se dibuja en cualquier otro lado de la
pantalla. Esto termina hasta que se pulsa una tecla.

CONCLUSIN:
En esta prctica aprendimos a manejar el ratn en dado caso de que el teclado no
funcionara, corregimos algunos errores del cdigo analizndolos con mi compaero de
equipo ngel y terminamos la practica exitosamente cada quien realizo su reporte

También podría gustarte