Está en la página 1de 6

Colegio de Educacin Profesional

Tcnica del Estado de Veracruz.


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.

También podría gustarte