Está en la página 1de 7

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:
Diseo de videojuegos



PRACTICA #6





INTRODUCCION:
En esta prctica vamos a crear un videojuego que haga que cierto objeto se mueva, sin dejarlo
de ver, y que tambin lo movamos conforme a unas teclas, E,S,D,X.
PROPOSITO:
Elabora una aplicacin de videojuego con uso de Mapas para que una figura avance por la pantalla; si choca con la pared
exterior, con su propia "cola" o con algn otro obstculo, muere.



ESCENARIO:
LABORATORIO DE INFORMATICA

DURACION:
2 HORAS

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

PRCTICA:
Evitar los parpadeos, juego minisejrpiente 3 mediante
aproximaciones







PRACTICA #6
Primero encend el equipo de cmputo, posteriormente abr el programa adecuado para realizar mi
primera prctica el cual fue dev-cpp:
Le di clic en archivo nuevo proyecto sale una ventana en donde le pondremos nombre a nuestra
prctica e indicaremos que ser en multimedia en donde trabajaremos, de ah haba una opcin 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
cdigo, lo borre y empec a hacer mi prctica:
En esta prctica tenamos que hacer un videojuego, en el cual evitaremos los parpadeos, tendremos
que mover una bolita el cual simulara a una serpiente, lo podremos mover ya sea arriba, abajo,
izquierda, o derecha, lo que se hace en esta practica es lograr que se mueva y que tambin avance al
pulsar algunas teclas.

CODIGO:
#include <allegro.h>
#define POS_X_INI 16
#define POS_Y_INI 10
#define INC_X_INI 1
#define INC_Y_INI 0
#define PAUSA 350
#define TEC_ARRIBA KEY_E
#define TEC_ABAJO KEY_X
#define TEC_IZQDA KEY_S
#define TEC_DCHA KEY_D
int posX, posY;
int incX, incY;
int terminado;
int tecla;
#define ESCALA 10
#define ANCHOSPRITE 10
#define ALTOSPRITE 10
#define MAXFILAS 20
#define MAXCOLS 32
char mapa[MAXFILAS][MAXCOLS]={
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X",
"X FFF X X",
"X F X F X",
"X XXXXX X X",
"X X X X",
"X X X X X",
"X X F X X X",
"X X X X",
"X XXXXX X X",
"X X X X",
"X F XXXXX X",
"X X XXXX",
"X X F X",
"X X XX X",
"X XXXXX XXX X",
"X X F X X",
"X F X X X",
"X X F X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};
int numFrutas = 11;
BITMAP *ladrilloFondo, *comida, *jugador;
typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];
tipoSprite spriteLadrillo =
{{0,5,5,5,5,5,5,5,5,0},
{5,1,1,1,1,1,1,1,1,5},
{5,1,1,1,1,1,1,1,1,5},
{5,1,1,1,1,1,1,1,1,5},
{5,1,1,1,1,1,1,1,1,5},
{5,1,1,1,1,1,1,1,3,5},
{5,1,1,1,1,1,1,3,3,5},
{5,1,1,1,1,1,3,3,2,5},
{5,5,5,5,5,5,5,5,5,0}
};
tipoSprite spriteComida =
{{0,0,0,5,0,0,0,0,0,0},
{0,0,5,5,0,0,5,5,0,0},
{0,4,4,4,5,5,4,4,0,0},
{4,4,4,4,4,5,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}
};
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] ]);
}
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);
}
}
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;
}
creaSprites();
dibujaFondo();
posX = POS_X_INI;
posY = POS_Y_INI;
incX = INC_X_INI;
incY = INC_Y_INI;
do {
dibujaFondo();
draw_sprite (screen, jugador, posX*ESCALA, posY*ESCALA);
terminado = FALSE;
if (mapa[posY][posX] == 'F') {
mapa[posY][posX] = ' ';
numFrutas --;
if (numFrutas == 0) {
textout(screen, font,
"Ganaste!", 100, 90, palette_color[2]);
terminado = TRUE;
}
}
if (mapa[posY][posX] == 'X') {
textout(screen, font,
"Chocaste :(", 100, 90, palette_color[6]);
terminado = TRUE;
}
if (terminado) break;
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;
rest ( PAUSA );
}
while (TRUE);
readkey();
return 0;
}
END_OF_MAIN();