sábado, 11 de julio de 2009

Un editor de mapas en allegro y C++ en el que he estado trabajando

Dejo un par de imagenes de un pequeño proyecto que lleva 2 dias, un editor de mapas para juegos, admite baldosas de 32x32 y por el momento mapas de 640x480.

Las baldosas son de "Cheetah Men II" Enlace a un video del juego, si... es terrible, pero las baldosas me gustaron un poco y las utilizo porque sinceramente no soy muy creativo para crear SPRITES.

Aqui las imagenes:

Editor

Cuando guardas el archivo del mapa para ser leido por un juego, dicho archivo es similar a este:


Mapa

viernes, 10 de julio de 2009

Algunos juegos programados por mi en Allegro y C++

Aqui dejo 3 videos de algunos juegos que he programado, nada complejo aun...

Space invaders:



Arkanoid o breakout:



Un juego de plataforma:

domingo, 14 de junio de 2009

Lorayne Harry - Como adquirir una supermemoria





En esta ocasión proporcionare un enlace para descargar este libro, en el cual el autor brinda consejos sobre como memorizar mas rápidamente con algunas mnemotecnias además sobre como mejorar nuestra capacidad de observación, no hay mucho mas que decir, solo que es un fantastico libro, espero a alguien le sirva:


Descargar PDF

viernes, 15 de mayo de 2009

Tutorial: "Allegro 2 - Funciones y objetos recurrentes"

A continuacion mostrare y explicare cuales son las funciones y objetos mas comunes en allegro:

Por el momento nos enfocaremos a lo relacionado con graficos, sprites comunes y dar movimiento mediante el teclado, quiza despues... si a alguien le sirve... explicare sobre Audio, archivos de datos .dat, gestion de mouse etc.

Funciones:

  • clear_bitmap(nombre_del_bitmap); Esta permite "borrar" o "actualizar" un bitmap.
  • clear_to_color(nombre_del_bitmap, makecol(R,G,B)); Esta permite "actualizar" o "borrar" el fondo de la ventana, ademas de asignarle un color a esta, pues si utilizaramos la funcion anterior se asigna por defecto el color negro.
  • makecol(R,G,B); Esta funcion asigna un color tomando 3 argumentos, los cuales son la gama de R(Rojo), G(Green), B(Azul), con una rango de 0 a 255. Aqui una referencia de estos colores: Click
  • load_bitmap("nombre_de_archivo.bmp", 0); Esta toma como argumento el nombre de un archivo de formato BMP o PCX, y asigna dicho archivo a un objeto de tipo BITMAP *.
  • create_bitmap(ANCHO, ALTO); Esta funcion es utilizada comunmente para crear el buffer o bitmap de fondo de la pantalla., tomando como argumentos el ANCHO y alto de la misma.
  • draw_sprite(destino, sprite, coordenada_x, coordenada_y); Esta funcion toma como argumento un BITMAP* destino, el cual comunmente se denomina buffer o screen, despues un sprite o imagen de algun objeto o personaje del juego, su coordenada 'X' en la ventana y su coordenada 'Y'.
  • blit(fuente, destino, coord_x_fuente, coord_y_fuente, coord_x_destino, coord_y_destino, ancho, alto); Esta toma los siguientes argumentos: "fuente" es el BITMAP, (comunmente *buffer), que sera "impreso" en el BITMAP destino (comunmente screen), posteriormente tomara las coordenada X, Y del BITMAP fuente, se asignaran las coordenadas X, Y del destino y por ultimo el ANCHO y ALTO de el BITMAP que sera impreso, comunmente se utiliza asi: blit(buffer, screen, 0,0,0,0, ANCHO, ALTO);
Objetos:

  • BITMAP *nombre; Declara un objeto de la ctipo BITMAP, al cual debe asignarsele un archivo mediante la funcion: load_bitmap(); o create_bitmap();
Ejemplo:
1) BITMAP *sprite = load_bitmap("imagen.bmp", 0);
2) BITMAP *buffer = create_bitmap(ANCHO, ALTO);

  • Para el teclado tenemos las siguientes rutinas:
KEY_A ... KEY_Z,
KEY_0 ... KEY_9,
KEY_0_PAD ... KEY_9_PAD,
KEY_F1 ... KEY_F12,

KEY_ESC, KEY_TILDE, KEY_MINUS, KEY_EQUALS,
KEY_BACKSPACE, KEY_TAB, KEY_OPENBRACE, KEY_CLOSEBRACE,
KEY_ENTER, KEY_COLON, KEY_QUOTE, KEY_BACKSLASH,
KEY_BACKSLASH2, KEY_COMMA, KEY_STOP, KEY_SLASH,
KEY_SPACE,

KEY_INSERT, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP,
KEY_PGDN, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN,

KEY_SLASH_PAD, KEY_ASTERISK, KEY_MINUS_PAD,
KEY_PLUS_PAD, KEY_DEL_PAD, KEY_ENTER_PAD,

KEY_PRTSCR, KEY_PAUSE,

KEY_ABNT_C1, KEY_YEN, KEY_KANA, KEY_CONVERT, KEY_NOCONVERT,
KEY_AT, KEY_CIRCUMFLEX, KEY_COLON2, KEY_KANJI,

KEY_LSHIFT, KEY_RSHIFT,
KEY_LCONTROL, KEY_RCONTROL,
KEY_ALT, KEY_ALTGR,
KEY_LWIN, KEY_RWIN, KEY_MENU,
KEY_SCRLOCK, KEY_NUMLOCK, KEY_CAPSLOCK

KEY_EQUALS_PAD, KEY_BACKQUOTE, KEY_SEMICOLON, KEY_COMMAND


Solo nos resta evaluar si alguna de esas teclas es presionada o no, con la siguiente sintaxis como ejemplo:
while(!key[KEY_ESC]){//Realiza este codigo mientras la tecla ESC no sea presionada}

if(key[KEY_SPACE])
{//Realiza lo que se indique aqui SI la tecla espaciadora es presionada}