You are on page 1of 11

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO

DE VERACRUZ
LIC. JESUS REYES HEROLES



ALUMNO: Emma Graciela Santos Blanco
COMPAERO DE EQUIPO: ngel Martnez Hernndez

GRUPO: 604 PRCTICA: 7
MATRICULA: 111650026-3
CARERRA: P.T.B. en Informtica

MODULO: Programacin De Videojuegos

DOCENTE: Miguel ngel Ramos Grande
CONTENIDO: Esta prctica contiene un videojuego de una Mini serpiente pero ahora
con un nivel un poco ms alto, haciendo el uso de las teclas para su movimiento
requerido con la biblioteca de Allegro.
PRACTICA 7: Crear juego mini serpiente 2 usando lenguaje de programacin
PROPOSITO DE LA PRCTICA: Elabora una aplicacin de videojuego con figuras
multicolor usando lenguaje de programacin para que las figuras se muevan





INTRODUCCIN
Realizamos la prctica nmero 7, donde es la continuacin de la prctica anterior, sobre
el videojuego de la mini serpiente, donde haremos el uso de las teclas para su
movimiento de arriba, abajo, derecha, izquierda, usando la librera Allegro Application
Static.
DESARROLLO
1.- Aqu mostramos cuales fueron los pasos que realizamos para terminar la practica:
Lo primero que hicimos fue Abrir Dev-Cpp>Clic en Archivo>Seleccionamos el men
Nuevo>Proyecto, como aparece en la imagen siguiente.








2. Nos mandara la siguiente ventana, donde seleccionamos el men
Multimedia>Allegro Application (Static), damos nombre a nuestro proyecto.







Una vez escrito el nombre nos mostrara un cdigo que nos mostrara por defecto, y que
tendremos que borrar ya que no nos ser de utilidad para nuestro programa que
queremos crear.
El cdigo que ocuparemos es el siguiente:
#include <allegro.h>
/* Posiciones X e Y al inicio */
#define POS_X_INI 16
#define POS_Y_INI 10
#define INC_X_INI 1
#define INC_Y_INI 0
/* Pausa en milisegundos */
#define PAUSA 350
/* Teclas predefinidas */
#define TEC_ARRIBA KEY_W
#define TEC_ABAJO KEY_Z
#define TEC_IZQDA KEY_A
#define TEC_DCHA KEY_S
int posX, posY; /* Posicion actual */
int incX, incY; /* Incremento de la posicin */
/* Terminado: Si ha chocado o comida toda las frutas */
int terminado;
/* La tecla pulsada */
int tecla;
/* Escala: relacin entre tamano de mapa y de pantalla */
#define ESCALA 10
/* Ancho y alto de los sprites */
#define ANCHOSPRITE 10
#define ALTOSPRITE 10
/* Y el mapa que representa a la pantalla */
/* Como usaremos modo grafico de 320x200 puntos */
/* y una escala de 10, el tablero medir 32x20 */
#define MAXFILAS 20
#define MAXCOLS 32
char mapa[MAXFILAS][MAXCOLS]={

"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X",
"X F XXXXXX F X X",
"X X F X F X",
"X XXXXXXXXXX X X",
"X X X X",
"X X X X",
"X X F X X",
"X X X F X",
"X X X",
"X X X X",
"X F XXXXXXXXXXX X X",
"X X X",
"X X F X",
"X X X X X",
"X X X X",
"X X F X X",
"X F X X X",
"X X F X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};
int numFrutas = 7;
/* Nuestros sprites */
BITMAP *ladrilloFondo, *comida, *jugador;
typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];
/* El sprite en si: matriz de 30x30 bytes */
tipoSprite spriteLadrillo =
{{0,2,2,2,2,2,2,2,2,0},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,3,2},
{2,1,1,1,1,1,1,3,3,2},
{2,1,1,1,1,1,3,3,2,2},
{2,2,2,2,2,2,2,2,2,0}
};
tipoSprite spriteComida =
{{0,0,0,2,0,0,0,0,0,0},
{0,0,2,2,0,0,2,2,0,0},
{0,4,4,4,2,2,4,4,0,0},
{4,4,4,4,4,2,4,4,4,0},
{4,4,4,4,4,4,4,4,4,0},
{4,4,4,4,4,4,4,4,4,0},
{4,4,4,4,4,4,4,4,4,0},
{4,4,4,4,4,4,4,4,4,0},
{0,4,4,4,4,4,4,4,0,0}
};
tipoSprite spriteJugador =
{{0,0,3,3,3,3,3,0,0,0},
{0,3,1,1,1,1,1,3,0,0},
{3,1,1,1,1,1,1,1,3,0},
{3,1,1,1,1,1,1,1,3,0},
{3,1,1,1,1,1,1,1,3,0},
{3,1,1,1,1,1,1,1,3,0},
{0,3,1,1,1,1,1,3,0,0},
{0,0,3,3,3,3,3,0,0,0}
};
/* -------------- Rutina de crear los sprites ------------- */
void creaSprites()
{
int i, j;

ladrilloFondo = create_bitmap(10, 10);
clear_bitmap(ladrilloFondo);
for(i=0; i<ANCHOSPRITE; i++)
for (j=0; j<ALTOSPRITE; j++)
putpixel(ladrilloFondo, i, j,
palette_color[ spriteLadrillo[j][i] ]);
comida = create_bitmap(10, 10);
clear_bitmap(comida);
for(i=0; i<ANCHOSPRITE; i++)
for (j=0; j<ALTOSPRITE; j++)
putpixel(comida, i, j,
palette_color[ spriteComida[j][i] ]);
jugador = create_bitmap(10, 10);
clear_bitmap(jugador);
for(i=0; i<ANCHOSPRITE; i++)
for (j=0; j<ALTOSPRITE; j++)
putpixel(jugador, i, j,
palette_color[ spriteJugador[j][i] ]);
}
/* -------------- Rutina de dibujar el fondo ------------- */
void dibujaFondo()
{
int i, j;
clear_bitmap(screen);
for(i=0; i<MAXCOLS; i++)
for (j=0; j<MAXFILAS; j++) {
if (mapa[j][i] == 'X')
draw_sprite(screen, ladrilloFondo, i*ESCALA, j*ESCALA);
if (mapa[j][i] == 'F')
draw_sprite(screen, comida, i*ESCALA, j*ESCALA);
}
}
/* ------------------------------------------------ */
/* */
/* -------------- Cuerpo del programa ------------- */
int main()
{
allegro_init(); /* Inicializamos Allegro */
install_keyboard();
install_timer();
/* Intentamos entrar a modo grafico */
if (set_gfx_mode(GFX_SAFE, 500, 300, 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 */
creaSprites();
dibujaFondo();
/* Valores iniciales */
posX = POS_X_INI;
posY = POS_Y_INI;
incX = INC_X_INI;
incY = INC_Y_INI;
/* Parte repetitiva: */
do {
dibujaFondo();
draw_sprite (screen, jugador, posX*ESCALA, posY*ESCALA);
terminado = FALSE;

/* Si paso por una fruta: la borro y falta una menos */
if (mapa[posY][posX] == 'F') {
mapa[posY][posX] = ' ';
numFrutas --;
if (numFrutas == 0) {
textout(screen, font,
"Ganaste!", 100, 90, palette_color[8]);
terminado = TRUE;
}
}
/* Si choco con la pared, se acabo */
if (mapa[posY][posX] == 'X') {
textout(screen, font,
"Chocaste!", 100, 90, palette_color[7]);
terminado = TRUE;
}
if (terminado) break;
/* Compruebo si se ha pulsado alguna tecla */
if ( keypressed() ) {
tecla = readkey() >> 8;
switch (tecla) {
case TEC_ARRIBA:
incX = 0; incY = -1; break;
case TEC_ABAJO:
incX = 0; incY = 1; break;
case TEC_IZQDA:
incX = -1; incY = 0; break;
case TEC_DCHA:
incX = 1; incY = 0; break;
}
}
posX += incX;
posY += incY;

/* Peque?a pausa antes de seguir */
rest ( PAUSA );
}
while (TRUE); /* Repetimos indefininamente */
/* (la condici?n de salida la comprobamos "dentro") */
readkey();
return 0;
}
/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();




Para ejecutar el programa nos vamos a la pestaa Ejecutar>Compilar y Ejecutar o
tambin con la tecla (F9), como se muestra en la imagen de abajo.






Nos mandara una ventana de ejecucin donde nos permitir jugar a la Miniserpiente.


En la imagen se muestra como la mini serpiente tiene una colisin contra la pared y de
esta forma el jugador pierde.
CONCLUSION
Esta prctica fue similar a la anterior la realice con mi compaero ngel, para poder
lograr exitosamente lo que nos peda la prctica: Elaborar una aplicacin de videojuego
con figuras multicolor usando lenguaje de programacin para que las figuras se
muevan

You might also like