You are on page 1of 8

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.
1.- 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

2. - Se abrira la siguiente ventana y seleccionamos el men siguiente:


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. (Moto 1)
#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. (Utilizaremos las flechas
cursoras)
#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()
{
Comentado [A1]: Con E nos desplazamos hacia arriba
Comentado [A2]: Con X hacia abajo
Comentado [A3]: Con S a la izquierda
Comentado [A4]: Y con D a la derecha
Comentado [A5]: Nos movemos hacia arriba con la tecla cursora
Comentado [A6]: Nos movemos hacia abajo
Comentado [A7]: Hacia la izquierda con la tecla cursora que
indica izquierda
Comentado [A8]: Y nos movemos hacia la derecha
//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;
Comentado [A9]: Instalamos el teclado
Comentado [A10]: Instalamos el tiempo
futY2 = posY2 + incY2;
//Si la moto 1 choca con un getpixel se muestra el mensaje La moto 1 ha
chocado
if (getpixel(screen, futX1, futY1)!=0){
textout(screen, font,"La moto 1 ha chocado!", 100,90, palette_color[7]);
chocado =TRUE;
}
//se hace el mismo procedimiento que el anterior (Si la moto 2 choca con un
getpixel se muestra el mensaje La moto 2 ha chocado)
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;
Comentado [A11]: Ciclo if
Comentado [A12]: Ciclo if de la moto 2
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 as se repite la funcin 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. Esta prctica se puede jugar con
2 personas, es una prctica que se podra decir origino a los juegos modernos,
que se juegan de dos o ms personas, se usan pixeles para mostrar pequeas
cosas como cuando se choca un pequeo pixel con otro.

You might also like