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:
Cuando guardas el archivo del mapa para ser leido por un juego, dicho archivo es similar a este:
sábado, 11 de julio de 2009
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:
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:
1) BITMAP *sprite = load_bitmap("imagen.bmp", 0);
2) BITMAP *buffer = create_bitmap(ANCHO, ALTO);
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}
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);
- BITMAP *nombre; Declara un objeto de la ctipo BITMAP, al cual debe asignarsele un archivo mediante la funcion: load_bitmap(); o create_bitmap();
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}
Suscribirse a:
Entradas (Atom)