galaxi c

Páginas: 5 (1099 palabras) Publicado: 23 de abril de 2015
/****************************************************************************
METEOR

Este programa muestra el manejo de algunas funciones graficas. La velocidad
de ejecucion depende directamente de la velocidad del microprocesador, ya
que se controla mediante un contador. Esta hecho en Borland C 3.1, pero creo
que correr  en cualquier versi¢n posterior.

Programado por Jorge Ram¡rezFlores, de la Escuela Superior de Computo del
IPN, 1er Semestre. Correo: jorrami@fastnet.com.mx. Si encuentras un bug o
tienes una mejor¡a, no dudes en escribirme.
****************************************************************************/

#include
#include
#include
#include
#include
#include
#include

// Libreria de controlde mouse
#include "mouse.h"

// Definicion de macros
#define maxx getmaxx ()
#define maxy getmaxy ()
#define medx maxx / 2
#define medy maxy / 2

// Definicion de constantes
#define disty 450
#define ancho 20
#define ancho_e 10
#define maxenemigos 49
#define margen 20

// Estructura con los datos de los enemigos
struct ENEMIGO
{int x, y, visible, enmovimiento;
} enemigo [maxenemigos +1];

// Estructura con los datos del enemigo
struct BALA
{int x, y1, y2, visible;
} bala;

// Prototipos de las funciones
void inicializar ();
void escribe (int x, int y, char *cadena, ...);
void dibujar ();
void mover_n (int x);
void crear_enemigos ();
void mover_e ();
void disparar ();
void avanzar ();
void barra_estado ();
void estallido_e ();
void estallido_n ();
void terminar ();
int juego();
void subir_nivel ();

// Variables globales del juego
int navex, cont = 0, retardo = 150, retardo_tiro = 15, vidas = 5, destruidos = 0, nivel = 1, maxmov = 5;
void *imagen_n, *imagen_e, *explosion;

// Programa principal
void main ()
{int terminar = 0;
inicializar (),
dibujar ();
do
terminar = juego ();
while (!terminar);
free (imagen_n),
free (imagen_e),
closegraph (),
exit (0);
}// Inicializa graficos
void inicializar ()
{int a=0, b;
initgraph (&a, &b, ""),
navex = medx,
bala.x = navex + ancho / 2,
bala.y1 = disty - 6,
bala.y2 = disty - 1,
bala.visible = 0;
}

// Escribe una cadena con formato en x,y
void escribe (int x, int y, char *cadena, ...)
{va_list argptr;
char str [140];
va_start (argptr, cadena);
vsprintf (str, cadena, argptr);outtextxy (x, y, str);
va_end (argptr);
}

// Traza y almacena las imagenes de la nave, enemigos y explosiones
void dibujar ()
{int coords [] = {ancho/2,0, 0,ancho/2, ancho,ancho/2}, color=getcolor ();
struct fillsettingstype tipo;
getfillsettings (&tipo),
setcolor (1), // Nave
setfillstyle (1, 1),
fillpoly (3, coords),
imagen_n = malloc (imagesize (0,0,ancho,ancho/2)),
getimage (0,0, ancho,ancho/2, imagen_n),
putimage (0,0, imagen_n, XOR_PUT),
setcolor (3), // Enemigo
setfillstyle (1, 11),
fillellipse (ancho_e/2,ancho_e/2, ancho_e/2,ancho_e/2),
imagen_e = malloc (imagesize (0,0, ancho_e,ancho_e)),
getimage (0,0, ancho_e,ancho_e, imagen_e),
putimage (0,0, imagen_e, XOR_PUT),
setcolor (14), // Explosion
setfillstyle (1,14),
fillellipse (ancho_e/2,ancho_e/2, ancho_e/2,ancho_e/2),
explosion = malloc (imagesize (0,0, ancho_e,ancho_e)),
getimage (0,0, ancho_e,ancho_e, explosion),
putimage (0,0, explosion, XOR_PUT),
setcolor (color),
setfillstyle (tipo.pattern, tipo.color);
}

// Mueve la nave
void mover_n (int x)
{putimage (navex, disty, imagen_n, XOR_PUT),
putimage (x, disty, imagen_n,XOR_PUT),
navex = x;
}

// Dibuja y almacena los datos de todos los enemigos
void crear_enemigos ()
{int i, j, x, y = margen + 20, n = 0;
for (i=0; i<7; i++)
{x = 240;
for (j=0; j<7; j++)
putimage (x,y, imagen_e, XOR_PUT),
enemigo [n].x = x, enemigo [n].y = y, enemigo [n].visible = 1, enemigo [n].enmovimiento = 0,
n++,
x += 20;
y += 20;
}
}

// Mueve a los...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Galaxias
  • la galaxia
  • galaxias
  • Galaxia
  • Galaxias
  • galaxi
  • Las Galaxias
  • galaxi

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS