Sie sind auf Seite 1von 8

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL

ESTADO DE VERACRUZ
Unidad 2

NOMBRE DEL ALUMNO: MATRCULA:
ROSA VICTORIA CRUZ ALBERTO 111650276- 4

DOCENTE:
ING. MIGUEL ANGEL RAMOS GRANDE


MDULO:
PROGRAMACION DE VIDEOJUEGOS

CARRERA: GRUPO: SEMESTRE:
Profesional Tcnico en Informtica 603 6




TITULO DE LA INVESTIGACIN O TAREA:



PRCTICA NUMERO 7



Juego Miniserpiente 2






OBSERVACIONES:












CALIFICACIN
Para realizar la practica nmero 7 para empezar abrir
DEV C++, despus Archivo, Nuevo, Proyecto as como
se muestra en la siguiente imagen





Ahora elegimos Allegro en la ventanita que nos aparecera
despues de abrir, le
ponemos un nombre y le
damos aceptar








Ahora empezamos a crear nuestro programa primero
que nada se introducen las libreras que se vallan a
ocupar
Despus declaramos las variables, hacemos el modo
grafico de la rutina de la serpiente, indicamos las teclas
que se utilizaran para jugar, cuando choque en una
parad lo que le suceder, se indican las frutas que
comer



Una vez terminado el programa se ejecutara y te
aparecer esta ventana en donde se aguardara tu
programa, le tendrs que poner un nombre







Una vez ejecutado solo esperamos el resultado del programa as como
se muestra en las imgenes



Aqu se puede ver que si funciona bien como la serpiente
come las frutas, donde en la practica 7 pide que las
tenga.




Y pues aqu se puede ver que cuando pierdes te
manada un mensaje

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 33

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 X 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;

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[14]);
terminado = TRUE;
}
}

if (mapa[posY][posX] == 'X') {
textout(screen, font,
"Perdiste!", 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();

Das könnte Ihnen auch gefallen