Está en la página 1de 10

Colegio de educacin profesional tcnica del estado de Veracruz.

Plante #165 Lic. Jess Reyes Heroles


Mdulo:
Programacin De Videojuegos
Docente:
Miguel ngel Ramos Grande
Alumno:
Manuel Alexis Hurtado Morales.
Carrera:
Informtica
Matricula:
111650246-7
Prctica 7:
Crear juego mini-serpiente 2 usando lenguaje de programacin
Propsito de la prctica:
Elabora una aplicacin de videojuego con figuras multicolor
usando lenguaje de programacin para que las figuras se
muevan
Direccin del blog:
http://programaciondevideojuegosalexis.blogspot.mx/


1.- Para la elaboracin de esta prctica lo primero que realice es:
Abrir Dev-Cpp
Damos clic en ARCHIVO
Seleccionamos el men NUEVO
Enseguida damos clic en PROYECTO

2. - Se abrira la siguiente ventana y seleccionamos el men siguiente:

//Iniciamos alegro para empezar nuestro video juego de la mini serpiente:
#include <allegro.h>
//Definimos posiciones iniciales.
#define POS_X_INI 16
#define POS_Y_INI 10
#define INC_X_INI 1
#define INC_Y_INI 0
//Realizamos una pausa en milisegundos.
#define PAUSA 300


//Definimos nuestras teclas a utilizar en este caso sern nmeros de nuestro
teclado por lo tanto agregamos _PAD.
#define TEC_ARRIBA KEY_8_PAD
#define TEC_ABAJO KEY_2_PAD
#define TEC_IZQDA KEY_4_PAD
#define TEC_DCHA KEY_6_PAD
//Posicion Actual.
int posX, posY;
//Incremento en la posicion.
int incX, incY;
//Variable que identifica si ha chocado o si ha comido todas las frutas.
int terminado;
//Detecta si pulsamos alguna tecla.
int tecla;
//Define escala entre el tamao del mapa y de la pantalla.
#define ESCALA 10
//Ancho y alto de los Sprite.
#define ANCHOSPRITE 10
#define ALTOSPRITE 10
//Filas y columnas a utilizer en nuestro codigo
#define MAXFILAS 50
#define MAXCOLS 63
//Mapa del video juego, imprimimos pantalla ya que copiando el codigo se
desconfigura
char mapa[MAXFILAS][MAXCOLS]={



//Numero de frutas colocadas en nuestro Videojuego.
int numFrutas = 15;
Sprites.
BITMAP *ladrilloFondo, *comida, *jugador;
typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];
Matriz
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 sprite.
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();
install_keyboard();
install_timer();
//Entramos a modo Grafico.
if (set_gfx_mode(GFX_SAFE, 600, 300, 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();
//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[7]);
terminado = TRUE;
}
}
//Si la serpiente topa con pared, se acabo el juego.
if (mapa[posY][posX] == 'X') {
textout(screen, font,"Chocaste!", 100, 90, palette_color[7]);
terminado = TRUE;
}
if (terminado) break;
//Se comprueba 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 continuar.
rest ( PAUSA );
}
//Repetimos indefininamente
while (TRUE);

readkey();
return 0;
}END_OF_MAIN();
Programa compilado:

Conclusin: en esta prctica se llevaron a cabo grficos, y la utilizacin de
repeticin tanto pausas y diversos procedimientos nuevos, como la creacin de los
ladrillos y las frutas utilizando putpixeles y matrices.


Se nos dificulto un poco el uso de putpixeles, pero al final logramos el ejercicio.

GLOSARIO:
Sprite: un sprite es un grfico pequeo que se dibuja en cualquier parte de la
pantalla
Putpixel: Esta funcin es usada para asignar el valor del color a un pxel en
particular. La posicin del pxel en cuestin est especificado por los argumentos x
e y. El argumento color especifica el valor del color del pxel.

También podría gustarte