You are on page 1of 10

Colegio de Educacin Tcnica del Estado de Veracruz

CONALEP N 165
Lic. Jess Reyes Heroles
Maestro:
Miguel ngel Ramos Grande
Modulo:
Programacin para videojuegos
Alumna:
Lucia Ramrez Xochihua
604/informtica
Practica 6:
Uso de Mapas. Juego Mini Serpiente 1
Propsito de la prctica:
Elaborar un juego donde una figura va avanzando por la
pantalla; si choca con la pared exterior, con su propia "cola" o
con algn otro obstculo, muere.
blog: http://luciaramirezxochihua96videojuegos.blogspot.mx/
Fecha:_____________________

Comentarios:
Introduccin:
El da lunes 26 de mayo entramos a nuestro laboratorio de
cmputo para llevar a cabo la practica nmero 6 la cual
consista en el juego de Mini serpiente 1.
Desarrollo:
1.- primero comenc abriendo mi programa
de Dev-C++
2.- Y como ya haba comenzado con un poco
de cdigo solo le di clic en abrir nuevo
proyecto.

Despus elaboramos una secuencia de
algoritmos para crear una serpiente que
avance por la pantalla; si choca con la pared exterior, con su
propia "cola" o con algn otro obstculo, muere. Y es ah
donde termina el juego.



Luego se elabor un mapa con las posibles posiciones de la
pantalla, e indicando cuales estn vacas, cuales
Ocupadas por obstculos y cuales ocupadas por comida.

Y enseguida se comenz a programar
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_W
#define TEC_ABAJO KEY_Z
#define TEC_IZQDA KEY_A
#define TEC_DCHA KEY_S

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 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 X",
"X X X X",
"X X X X",
"X X X X",
"X F XXXXX 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 X F X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};

int numFrutas = 7;

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,
"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();


Conclusin:
En esta prctica aprend cosas nuevas, creo que s estuvo un poco complicada
ya que fueron muchas cosas, muchas sentencias, declaraciones, y pruebas,
poro creo que en cierta forma me beneficio ya que algo parecido vi el
semestre pasado, y tambin con ayuda de mi maestro se logr realiza.r

You might also like