Está en la página 1de 8

Colegio Nacional De Educacion Profesional Tecnico

Lic. Jesus Reyes Heroles





Nombre Del Alumno: Epigmenia Santes Tolentino


Nombre Del Docente: Miguel Angel Ramos Grande

Nombre Del Modulo: Programacion De Videojuegos


Grupo: 603
Carrera: Informatica
Practica: 7

Propsito de la prctica
Elabora una aplicacin de videojuego con figuras multicolor usando
lenguaje de programacin para que las figuras se muevan







PRACTICA 7

Propsito de la prctica:

Elabora una aplicacin de videojuego con figuras multicolor usando
lenguaje de programacin para que las figuras se muevan

Este videojuego se trata de manejar una bola que al momento de
que nosotros la estemos manejando y valla comiendo manzanas sin
topar los muros.
En este juego utilizamos la librera allegro

#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

en esta parte de nuestro cdigo se declaran los nmeros o ya sea en este
caso utilizamos letras que fueron e ,x,s,d.

#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 33







Aqu se empieza a formar lo que es nuestro diseo del campo de juego.
Si unas de las x estn fuera de lnea nos marca error, todas la las x deben
estar en la misma lnea.
Tu puedes ponerlas en el lugar que quieres y cuantas quieras.
Tambin estn puestas unas frutas que en el cdigo la representa una F.

char mapa[MAXFILAS][MAXCOLS]={
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X",
"X F X X",
"X F X F X",
"X XXXXX X X",
"X X X X",
"X X X X X",
"X X X X XXXX",
"X X X X",
"X XXXX X X",
"X X X X",
"X F X X",
"X X X",
"X X F X",
"X X X X",
"X X X X",
"X X F X X",
"X F X X X",
"X X F X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};

int numFrutas = 8;





BITMAP *ladrilloFondo, *comida, *jugador;


typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];

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}
};
void creaSprites()
{
int i, j;
Aqu le podemos cambiar la imagen al juego.
Para cambiar solo tienes que ir combinando nmeros.

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] ]);

Al igual aqu si deseas cambiar la forma de la fruta
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] ]);

Por ultimo en el jugador tambin lo puedes cambiar deforma si deseas.
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,
"FELICIDADDEZZ Ganaste!", 100, 90, palette_color[14]);
terminado = TRUE;
}
} if (mapa[posY][posX] == 'X') {
textout(screen, font,
"UUU Chocaste!", 100, 90, palette_color[13]);
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();








Aqu estn las pantallas de nuestro videojuego

También podría gustarte