Alumno: Manuel Alexis Hurtado Morales Mdulo: Programacin de Videojuegos. Semestre: 6 Grupo: 604 Informtica Matrcula: 111650246-7 Practica 5: Elaborar juego evitando esperar al teclado, motos de luz. Propsito: Elabora una aplicacin de videojuego que evite esperar al teclado, para evitar que la computadora quede "parada " esperando a que se pulse una tecla y la accin prosiga aunque no se toque el teclado. Direccin del blog: http://programaciondevideojuegosalexis.blogspot.mx/ Introduccin: En esta prctica veremos cmo se realiza un recorrido de dos motocicletas las cuales si alguna de las dos llega a colisionar nos muestra un mensaje el juego de cual ha colisionado y nos saca del juego. Se declara nuestra librera para realizar nuestro video juego. #include <allegro.h> Se definen las posiciones de X e Y iniciales de nuestro videojuego. #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 Pausamos nuestro video juego en milisegundos. #define PAUSA 150 En este cdigo definimos las teclas a utilizar en una moto el videojuego. #define TEC_ARRIBA_1 KEY_E #define TEC_ABAJO_1 KEY_X #define TEC_IZQDA_1 KEY_S #define TEC_DCHA_1 KEY_D Se definen las teclas a utilizar en la moto nmero 2. #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 posicin. int futX1, futY1, futX2, futY2; / Futuras posiciones. Si la moto choca. int chocado; La tecla que pulsamos. int tecla; Iniciamos nuestro programa. int main() { Se inicializa allegro allegro_init(); install_keyboard(); install_timer(); Entramos 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; } Dibujamos un rectngulo alrededor. rect(screen,0,0,319,199, palette_color[9]); Declaramos 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; do { chocado = FALSE; Se comprueba si alguna moto choca. 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[7]); chocado =TRUE; } if (getpixel(screen, futX2, futY2)!=0){ textout(screen, font,"La moto 2 ha chocado!", 100,110, palette_color[9]); chocado = TRUE; } if (chocado)break; Si ninguna motocicleta choca entonces las motocicletas avanzan. line (screen, posX1, posY1, futX1, futY1, palette_color[7]); posX1 = futX1; posY1 = futY1; line (screen, posX2, posY2, futX2, futY2, palette_color[9]); posX2 = futX2; posY2 = futY2; Se comprueba si se pulsa alguna tecla se mueve alguna motocicleta. 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; } } Se realiza una pequea pausa Antes se continuar. rest ( PAUSA ); } y asi se repite la funcon hasta que alguna de las motocicletas choque y se salga del juego. while (TRUE); readkey(); return 0; Se termina nuestro programa. }END_OF_MAIN(); Compilacion de nuestro videoJuego: Se muestra el recorrido de las motocicletas.
Cuando Choca la motocicleta nmero 1. Cuando choca la motocicleta nmero 2. Conclusin: Esta prctica tuvo cambios en cuanto a la velocidad de las motocicletas y tambin los colores y unas cosas ms, aprend a como dirigirlas con nmeros ya que es una sentencia diferente.