You are on page 1of 6

Colegio de educación profesional técnica del estado de

Veracruz Lic. Jesús Reyes Heroles Plantel #165
Modulo:
Programación de videojuegos
Docente:
Miguel Ángel Ramos Grande
Alumna:
Reina Méndez Díaz
Carrera:
Informática
Matricula:
111650432-3
Tema:
Reporte de la práctica #6 “Elaboración de una
serpiente”



Para empezar nuestro código debemos de declarar la siguiente librería:
#include <allegro.h>

Definiremos las posiciones iniciales de X y Y como se muestra a continuación.
#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 serán 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 posición actual y el incremento de la posición.
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 tamaño de mapa y de la pantalla.
#define ESCALA 10
Definimos en ancho y el alto de los Sprites.
#define ANCHOSPRITE 10
#define ALTOSPRITE 10
Diseñaremos nuestro Sprites usando un BITMAP y después 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 comprobación 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 pequeña 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 conclusión con esta practica me surgió algo compleja ya que requerimos de
utilizar la librería “allegro” para que soportara los gráficos, y también
agregamos una matriz a nuestro cuerpo del programa; para ir formando la
estructura de donde pasaría la serpiente. Aparentemente nuestro programa
ya finalizado no se muestra gráficamente muy complejo pero debo confesar
que en lo personal si me costó mucho trabajo realizarlo.