Sie sind auf Seite 1von 9

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO DE VERACRUZ

PLANTEL Lic. Jess Reyes Heroles #165



UNIDAD: 1

NOMBRE DEL ALUMNO: MATRCULA:
ROSA VICTORIA CRUZ ALBERTO 111650147- 7

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 6

Crea juego Mini Serpiente 1 con uso de Mapas.




OBSERVACIONES:







http://rosavictoria603.blogspot.mx/















CALIFICACIN
#include <allegro.h>

/* Posiciones X e Y iniciales */
#define POS_X_INI 16
#define POS_Y_INI 10

#define INC_X_INI 1
#define INC_Y_INI 0

/* Pausa en milisegundos entre un "fotograma" y otro */
#define PAUSA 350

/* Teclas predefinidas */
#define TEC_ARRIBA KEY_E
#define TEC_ABAJO KEY_X
#define TEC_IZQDA KEY_S
#define TEC_DCHA KEY_D

int posX, posY; /* Posicion actual */
int incX, incY; /* Incremento de la posicion */

/* Terminado: Si ha chocado o comida todas las frutas */
int terminado;

/* La tecla pulsada */
int tecla;

/* Escala: relacion entre tamao 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 medira 32x20 */

#define MAXFILAS 20
#define MAXCOLS 32

















char mapa[MAXFILAS][MAXCOLS]={
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X",
"X X X",
"X X X",
"X XXXXX X X",
"X X X X",
"X X X X X",
"X X X X X",
"X X X X",
"X X X X",
"X X X X",
"X X X",
"X X X",
"X X X",
"X X X X",
"X X X X",
"X X X X",
"X X X X",
"X X 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, 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;
}

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


/* Si choco con la pared, se acabo */
if (mapa[posY][posX] == 'X') {
textout(screen, font,
"Chocaste!", 100, 90, palette_color[13]);
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;

/* Pequea pausa antes de seguir */
rest ( PAUSA );

}
while (TRUE); /* Repetimos indefininamente */
/* (la condicin de salida la comprobamos "dentro") */

readkey();
return 0;

}

/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();






Para realizar la prctica nmero 6 que es crear un juego mini serpiente 1 con uso de mapas. Bueno
lo primero que realice, fue crear un nuevo proyecto en (allegro application static) como se
muestra en las siguientes pantallas:








Despus me guie con la pgina de Nacho Cabanes encontr un cdigo, lo pase a alegro y
conforme lo iba pegando iba modificndole algunas partes que no queran funcionar del todo
bien, para empezar insert las libreras correspondientes como se pueden ver en la siguiente
imagen:













Despus de a ver modificado el cdigo lo ejecute para ver si estaba correcto, como se muestra en
la siguiente imagen donde lo guarde como main:









En esta imagen se puede ver cmo se va ejecutando el programa:







Esta es la imagen donde muestra como es el resultado del cdigo de la serpiente, slo que tiene
un pequeo error ya que la prctica dice que la serpiente no tiene que comer frutas y en esta
imagen si las tiene:




Para corregir el error me fui directo al cdigo del juego borre las letras (F) que eran las frutas para
que al momento de ejecutarlo no me aparecieran y coloque unos puntos y comas que me hacan
falta en el cdigo:

Para dar por terminada la prctica, ejecute el programa este es el resultado de la mini serpiente:

Das könnte Ihnen auch gefallen