Está en la página 1de 6

Colegio de educacin profesional tcnica del estado de

Veracruz Lic. Jess Reyes Heroles Plantel #165


Modulo:
Programacin de videojuegos
Docente:
Miguel ngel Ramos Grande
Alumna:
Reina Mndez Daz
Carrera:
Informtica
Matricula:
111650432-3
Tema:
Reporte de la prctica #6 Elaboracin de una
serpiente



Para empezar nuestro cdigo debemos de declarar la siguiente librera:
#include <allegro.h>

Definiremos las posiciones iniciales de X y Y como se muestra a continuacin.
#define POS_X_INI 16
#define POS_Y_INI 10
#define INC_X_INI 1
#define INC_Y_INI 0
Definiremos la pausa en milisegundos entre un fotograma y otro.
6
#define PAUSA 350
Definiremos las teclas que sern usadas para mover al jugador.
#define TEC_ARRIBA KEY_W
#define TEC_ABAJO KEY_S
#define TEC_IZQDA KEY_A
#define TEC_DCHA KEY_D
Declararemos las variables de la posicin actual y el incremento de la posicin.
int posX, posY;
int incX, incY;
Declaramos la variable que vamos a pulsar para almacenar la Tecla pulsada.
int tecla;
Definimos la escala entre el tamao de mapa y de la pantalla.
#define ESCALA 10
Definimos en ancho y el alto de los Sprites.
#define ANCHOSPRITE 10
#define ALTOSPRITE 10
Disearemos nuestro Sprites usando un BITMAP y despus formaremos
nuestro sprite.
/* Nuestro sprites */
BITMAP *jugador;
typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];
/* El sprite en si: matriz de 30x30 bytes */
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}
};
Crearemos la rutina para crear los sprites.
void creaSprites()
{
int i, j;
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] ]);
}
Crearemos la rutina para dibujar el fondo.
void dibujaFondo()
{
int i, j;
clear_bitmap(screen);
}
Ahora crearemos el cuerpo del programa.
int main()
{
allegro_init(); /* Inicializamos Allegro */
install_keyboard(); /*Instalamos keyboard para hacer uso del teclado*/
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 va bien hasta aqu empezamos mandamos a llamar las funciones de
nuestros sprites y las del fondo de la pantalla.
creaSprites();
dibujaFondo();
Mandamos a llamar nuestros valores iniciales del jugador.
posX = POS_X_INI;
posY = POS_Y_INI;
incX = INC_X_INI;
incY = INC_Y_INI;
Esta es la parte en la que se repite.
do {
dibujaFondo();
draw_sprite (screen, jugador, posX*ESCALA, posY*ESCALA);
Hacemos la comprobacin de que si se a 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;
Hacemos una pequea pausa antes de seguir.
rest ( PAUSA );
}
while (TRUE); En esta parte repetimos indefinidamente
readkey();
return 0;
}
Terminamos con la "macro" que nos pide Allegro
END_OF_MAIN();
En conclusin con esta practica me surgi algo compleja ya que requerimos de
utilizar la librera allegro para que soportara los grficos, y tambin
agregamos una matriz a nuestro cuerpo del programa; para ir formando la
estructura de donde pasara la serpiente. Aparentemente nuestro programa
ya finalizado no se muestra grficamente muy complejo pero debo confesar
que en lo personal si me cost mucho trabajo realizarlo.

También podría gustarte