COLEGIO DE EDUCACION PROFESIONAL TECNICO DEL

ESTADO DE VERACRUZ



NOMBRE DE LA ALUMNA:
JOVANA BERENICE VAZQUEZ MALERVA

GRADO Y CARRERA:
603 INFORMATICA

NOMBRE DEL PSP:
MIGUEL ANGEL RAMOS GRANDE

NOMBRE DEL MODULO:
PROGRAMACION DE VIDEOJUEGOS

UNIDAD DE APRENDIZAJE:
Diseño de videojuegos



PRACTICA #5





INTRODUCCION:
En esta práctica veremos cómo mover algún objeto de la pantalla programándolo con las
teclas de arriba-abajo izquierda-derecha o ya sea cualquier otra tecla, para ello utilizamos
allegro.

PROPOSITO:
Elabora una aplicación de videojuego que evite esperar al teclado, para evitar que la computadora quede
"parada " esperando a que se pulse una tecla y la acción prosiga aunque no se toque el teclado.



ESCENARIO:
LABORATORIO DE INFORMATICA

DURACION:
2 HORAS

MATERIALES:
• Equipo de cómputo Core Duo o superior
• Dispositivo de almacenamiento (USB)
• Windows 2000 en adelante
• Compilador de lenguaje seleccionado. (C, C++ o
• Java)

PRÁCTICA:
Elaborar juego evitando esperar al teclado, motos de
luz








PRACTICA #5
Primero encendí el equipo de cómputo, posteriormente abrí el programa adecuado para realizar mi
primera práctica el cual fue dev-cpp:
Le di clic en archivo nuevo proyecto sale una ventana en donde le pondremos nombre a nuestra
práctica e indicaremos que será en multimedia en donde trabajaremos, de ahí había una opción que
dice allegro aplication static, le puse nombre a mi practica y posteriormente di clic en esa, y le di
aceptar para guardar, le damos aceptar luego otra vez aceptar y aceptar de nuevo, y nos sale un
código, lo borre y empecé a hacer mi práctica:
En esta práctica teníamos que hacer un videojuego, motos de luz en esta teníamos que mover el
objeto con el teclado ya que este juego tenia que se de dos jugadores, para ello teníamos programar
obviamente el teclado para que fueran diferentes teclas para poder mover las dos motos de luz,
en la programación del juego teníamos que ir cambiando de posición las motos, es decir, teníamos
que hacer que avanzaran. Tenía que quedar así:

#include <allegro.h>
#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
#define PAUSA 150
#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;
int incX1, incY1, incX2, incY2;
int futX1, futY1, futX2, futY2;
int chocado;
int tecla;
int main()
{
allegro_init();
install_keyboard();
install_timer();
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;
}
rect(screen,0,0,319,199, palette_color[14]);
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;
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[2]);
chocado = TRUE;
}
if (chocado)break;
line (screen, posX1, posY1, futX1, futY1, palette_color[5]);
posX1 = futX1; posY1 = futY1;
line (screen, posX2, posY2, futX2, futY2, palette_color[11]);
posX2 = futX2; posY2 = futY2;
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;
}
}
rest ( PAUSA );
}
while (TRUE);
readkey();
return 0;
}
END_OF_MAIN();

Sign up to vote on this title
UsefulNot useful