Está en la página 1de 7

Conalep

Colegio De Educacin Profesional Tcnico Del Estado De Veracruz


#165
Lic. Jess Reyes Heroles.
Modulo
Povi-02
P.S.P
Miguel ngel Ramos Grande
Alumnos
Brenda Cruz Mata
Francisco Javier Flores Romn
Jorge Alberto Hernndez Rojas
Practica 5









Propsito De La Prctica:
Elaborar un juego donde se evite esperar al teclado, es decir que la
computadora quede "parada " esperando a que se pulse una tecla, sino que la
accin prosiga aunque no se toque el teclado.
Desarrollo
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

Inicio
#include <allegro.h>
/* Posiciones X e Y iniciales de ambos jugadores */
#define POS_X_INI_1 150
#define POS_X_INI_2 170
#define POS_Y_INI_1 100
#define POS_Y_INI_2 100
#define INC_X_INI_1 -1
#define INC_X_INI_2 1
#define INC_Y_INI_1 0
#define INC_Y_INI_2 0
/* Pausa en milisegundos entre un "fotograma" y otro */
#define PAUSA 150
/* Teclas predefinidas para cada jugador */
#define TEC_ARRIBA_1 KEY_E
#define TEC_ABAJO_1 KEY_X
#define TEC_IZQDA_1 KEY_S
#define TEC_DCHA_1 KEY_D
#define TEC_ARRIBA_2 KEY_8_PAD
#define TEC_ABAJO_2 KEY_2_PAD
#define TEC_IZQDA_2 KEY_4_PAD
#define TEC_DCHA_2 KEY_6_PAD
int posX1, posY1, posX2, posY2; /* Posiciones actuales */
int incX1, incY1, incX2, incY2; /* Incremento de la posicion */
int futX1, futY1, futX2, futY2; /* Posiciones futuras */
/* Si ha chocado alguna moto */
int chocado;
/* La tecla pulsada */
int tecla;
int main()
{
allegro_init(); /* Inicializamos Allegro */
install_keyboard();
install_timer();/* Intentamos entrar a modo grafico */
if (set_gfx_mode(GFX_SAFE,320,200,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 */
/* Rectangulo amarillo alrededor */
rect(screen,0,0,319,199, palette_color[14]);
/* Valores iniciales */
posX1 = POS_X_INI_1;
posX2 = POS_X_INI_2;
posY1 = POS_Y_INI_1;
posY2 = POS_Y_INI_2;
incX1 = INC_X_INI_1;
incX2 = INC_X_INI_2;
incY1 = INC_Y_INI_1;
incY2 = INC_Y_INI_2;
/* Parte repetitiva: */
do {
chocado = FALSE;
/* Compruebo si alguna va a colisionar */
futX1 = posX1 + incX1;
futX2 = posX2 + incX2;
futY1 = posY1 + incY1;
futY2 = posY2 + incY2;
if (getpixel(screen, futX1, futY1)!=0){
textout(screen, font,
"La moto 1 ha chocado!", 100,90, palette_color[13]);
chocado =TRUE;
}
if (getpixel(screen, futX2, futY2)!=0){
textout(screen, font,
"La moto 2 ha chocado!", 100,110, palette_color[12]);
chocado = TRUE;
}
if (chocado)break;
/* Si ninguna ha colisionado, avanzan */
line (screen, posX1, posY1, futX1, futY1, palette_color[13]);
posX1 = futX1; posY1 = futY1;
line (screen, posX2, posY2, futX2, futY2, palette_color[12]);
posX2 = futX2; posY2 = futY2;
/* Compruebo si se ha pulsado alguna tecla */
if ( keypressed() ){
tecla = readkey() >>8;
switch(tecla){
case TEC_ARRIBA_1:
incX1 = 0; incY1 = -1;break;
case TEC_ABAJO_1:
incX1 = 0; incY1 = 1;break;
case TEC_IZQDA_1:
incX1 = -1; incY1 = 0;break;
case TEC_DCHA_1:
incX1 = 1; incY1 = 0;break;
case TEC_ARRIBA_2:
incX2 = 0; incY2 = -1;break;
case TEC_ABAJO_2:
incX2 = 0; incY2 = 1;break;
case TEC_IZQDA_2:
incX2 = -1; incY2 = 0;break;
case TEC_DCHA_2:
incX2 = 1; incY2 = 0;break;
}
}
/* Pequea pausa antes de seguir */
rest ( PAUSA );
}
while (TRUE);/* Repetimos indefininamente */
/* (la condicion de salida la comprobamos "dentro") */
readkey();
return 0; }
/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();
Conclusin
En esta prctica no le entend mucho por qu est demasiado enredado.

También podría gustarte