Está en la página 1de 4

Colegio de Educacin Profesional Tcnica del Estado de Veracruz

"Lic. Jess Reyes Heroles"









Alumna: Sugey Guadalupe Loya Herrera



Grupo: 604 Carrera: Informtica




Modulo:

"Programacin para videojuegos"



Psp: Miguel ngel Ramos Grande














Practica 6.
Crea juego Mini Serpiente 1 con uso de Mapas
Propsito De La Prctica: Elabora una aplicacin de videojuego con uso de Mapas para que una figura
avance por la pantalla; si choca con la pared exterior, con su propia "cola" o con algn otro obstculo,
muere.

En esta prctica mi compaero y yo vamos a realizar un juego donde nos aparezca un crculo en nuestra
pantalla, pensamos que esta prctica ser muy fcil, ya que la aplicamos con el maestro antes de entrar
con DEV C++, el maestro nos dio una explicacin con un ejemplo similar.
Para empezar nuestro cdigo debemos de declarar la siguiente librera:

#include <allegro.h>

Definiremos las posiciones iniciales de X y Y:

#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.

#define PAUSA 350

Se seleccionan 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
Se har un incremento de la posicin:

int posX, posY;
int incX, incY;
int tecla;
#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] ]);
}

void dibujaFondo()
{
int i, j;
clear_bitmap(screen);
}

Ahora vamos a crear lo que es en si el 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;
}.
creaSprites();
dibujaFondo();
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);
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); En esta parte repetimos indefinidamente
readkey();
return 0;
}
Terminamos con la "macro" que nos pide Allegro
END_OF_MAIN();

El resultado fue el siguiente: