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}

No hay comentarios:

Publicar un comentario