Você está na página 1de 10

COLEGIO DE EDUCACION PROFESIONAL TCNICA DEL ESTADO DE

VERACRUZ
LIC. JESUS REYES HEROLES

Nombre del alumno(A):
YULIANA CECILIA DAMIAN REYES
DULCE SUGEY HERNANDEZ CRUZ
Modulo:
PROGRAMACION DE VIDEOJUEGOS
Profesor:
ING. MIGUEL ANGEL RAMOS GRANDE
Grupo:
604
Carrera:
INFORMTICA
Reporte de Practica #7
Crear juego Miniserpiente 2 usando lenguaje de programacin
PROPOSITO DE LA PRCTICA:
Elabora una aplicacin de videojuego con figuras multicolor usando lenguaje de
programacin para que las figuras se muevan





PRACTICA 7
Crear juego mini serpiente 2 usando lenguaje de programacin

INTRODUCCION

El da 24 de mayo de 2014 se realiz la prctica nmero 7 del mdulo de Programacin de
Videojuegos la cual consista en elaborar una aplicacin llamada mini serpiente en donde tena que
comer todos los objetos y evitar chocar con la pared de lo contrario el juego terminar. La prctica la
realice junto con mi compaera Dulce Sugey Hernndez Cruz.
DESARROLLO
Selecciona un lenguaje de programacin



Construir un algoritmo para juego de Miniserpiente 2
Utiliza el lenguaje seleccionado y bibliotecas necesarias.





Entra al modo grfico.
Para esto nos vamos a archivo Nuevo Proyecto


Utiliza "sprites" para crear figuras "transparentes": con "huecos" alrededor o en su interior y a travs
de estos huecos donde se ve el fondo.




Declara arreglos o array de dos dimensiones, que indicar el color de cada uno de los puntos que
forman la figura, que indicar el color de cada uno de los puntos que forman la figura:












Elabora rutinas algortmicas donde se construya el juego con figuras multicolor que se muevan










Hacer usos de funciones y rdenes necesarias propias del lenguaje.















Presentacin de cdigo
#include <allegro.h>

/* Posiciones X e Y iniciales */
#define POS_X_INI 16
#define POS_Y_INI 10

#define INC_X_INI 1
#define INC_Y_INI 0

/* Pausa en milisegundos entre un "fotograma" y otro */
#define PAUSA 350

/* Teclas predefinidas */
#define TEC_ARRIBA KEY_E
#define TEC_ABAJO KEY_X
#define TEC_IZQDA KEY_S
#define TEC_DCHA KEY_D

int posX, posY; /* Posicion actual */
int incX, incY; /* Incremento de la posicion */

/* Terminado: Si ha chocado o comida todas las frutas */
int terminado;

/* La tecla pulsada */
int tecla;

/* Escala: relacion entre tamao de mapa y de pantalla */
#define ESCALA 10

/* Ancho y alto de los sprites */
#define ANCHOSPRITE 10
#define ALTOSPRITE 10

/* Y el mapa que representa a la pantalla */
/* Como usaremos modo grafico de 320x200 puntos */
/* y una escala de 10, el tablero medira 32x20 */
#define MAXFILAS 20
#define MAXCOLS 33

char mapa[MAXFILAS][MAXCOLS]={
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X X",
"X F X X",
"X F X F X",
"X XXXXX X X",
"X X X X",
"X F X X X X",
"X X F X X XXXX",
"X X X X",
"X X F X X",
"X F X X X",
"X F X X",
"X X X",
"X X F X",
"X X F X X",
"X X X X",
"X X F X F X",
"X F X X X",
"X X F X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
};

int numFrutas = 8;

/* Nuestros sprites */
BITMAP *ladrilloFondo, *comida, *jugador;


typedef
char tipoSprite[ANCHOSPRITE][ALTOSPRITE];
/* El sprite en si: matriz de 10x10 bytes */

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 sprites ------------- */


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(); /* Inicializamos Allegro */
install_keyboard();
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 ha ido bien: empezamos */

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[14]);
terminado = TRUE;
}
}


/* Si choco con la pared, se acabo */
if (mapa[posY][posX] == 'X') {
textout(screen, font,
"Chocaste!", 100, 90, palette_color[10]);
terminado = TRUE;
}

if (terminado) break;

/* Compruebo 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 seguir */
rest ( PAUSA );

}
while (TRUE); /* Repetimos indefininamente */
/* (la condicin de salida la comprobamos "dentro") */

readkey();
return 0;

}

/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();


CONCLUSION
En esta prctica pude ver como se utilizaban los sprites dando una apariencia y un efecto
distinto a como se vena manejando adems estos se pudieron desarrollar gracias a los
arreglos que fueron de gran ayuda igual que ya se haban ocupados en prcticas anteriores.

BILIOGRAFIA
http://www.nachocabanes.com/videojuegos/ipj/ipj08.php

Você também pode gostar

  • Práctica 9
    Práctica 9
    Documento23 páginas
    Práctica 9
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Práctica 11
    Práctica 11
    Documento11 páginas
    Práctica 11
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Practica 7 Povi
    Practica 7 Povi
    Documento10 páginas
    Practica 7 Povi
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Practica 5 Povi
    Practica 5 Povi
    Documento11 páginas
    Practica 5 Povi
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Práctica 11
    Práctica 11
    Documento11 páginas
    Práctica 11
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Práctica 7 Reporte
    Práctica 7 Reporte
    Documento4 páginas
    Práctica 7 Reporte
    Diiana Ramirezz
    Ainda não há avaliações
  • Práctica 8 Reporte
    Práctica 8 Reporte
    Documento5 páginas
    Práctica 8 Reporte
    Diiana Ramirezz
    Ainda não há avaliações
  • Practica 5 Reporte
    Practica 5 Reporte
    Documento7 páginas
    Practica 5 Reporte
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Pra 10
    Pra 10
    Documento18 páginas
    Pra 10
    Yuliana D. Ochoa
    Ainda não há avaliações
  • Cuadro Comparativo
    Cuadro Comparativo
    Documento5 páginas
    Cuadro Comparativo
    Yuliana D. Ochoa
    Ainda não há avaliações