domingo, 13 de octubre de 2019

Gotoxy

Programa Gotoxy

#include <stdio.h>
#include <windows.h>
#include <iostream>

using namespace std;
int j;
void gotoxy(int x,int y){
    HANDLE hcon;
    hcon=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD dwPos;
    dwPos.X=x;
    dwPos.Y=y;
    SetConsoleCursorPosition(hcon,dwPos);
}
int main()
{
    for(j=1; j<=25; j++)
        {
            gotoxy(15,j);//Posiciona el curson en columna 15 y fila de 1 a 25
    system("color 4");//Cambia el color del texto
    cout <<"HOLA!!!";
    //system("cls");//Borra la pantalla
        }
            for(j=1; j<=25; j++)
        {
            gotoxy(j,15);//Posiciona el cursor en la fila 15 y la columna cambia de 1 a 25
    system("color 4");
    cout <<"HOLA!!!";
    //system("cls");
        }

        return 0;
}

martes, 1 de octubre de 2019

Allegro

¿Que es allegro?

Allegro (pronunciado alegro) es una biblioteca libre y de código abierto para la programación de videojuegos desarrollada en lenguaje C. Allegro es un acrónimo de «Atari Low Level Game Routines» (rutinas de bajo nivel para videojuegos).

La biblioteca cuenta con funciones para gráficos, manipulación de imágenes, texto, sonidos, dispositivos de entrada (teclado, ratón y mandos de juego) y temporizadores, así como rutinas para aritmética de punto fijo y acceso al sistema de archivos. Hasta agosto de 2011, hay 2 versiones de Allegro que cuentan con soporte oficial por parte de los desarrolladores, la versión clásica (Allegro 4) y la nueva versión (Allegro 5). La versión más reciente de Allegro 4 incluye soporte para el manejo de archivos de datos y una implementación por software de funciones para gráficos en 3D. La versión 5 de Allegro cuenta con una nueva API y cambia la implementación por software de las rutinas gráficas por una implementación basada en OpenGL o Direct3D.
Aunque Allegro ofrece una API en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarlo en otros lenguajes como C++, Java, C#, Visual Basic.NET, PythonDLuaPascal, Perl, Ruby, Go, Scheme, Common Lisp, Ocaml, Forth y Mercury.
-¿Cuales son las instrucciones que tiene la librería allegro?
















Ejemplos:


#include <allegro.h>
int main()
{  
    // inicializa el entorno del allegro
    allegro_init();
    install_keyboard();
    
    // se establece la resolucion grafica
    // modo ventana, 320x240
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0);
    
    // se crea buffer para contener todo lo que se muestra en nuestra ventana
    // por eso se crea con la misma dimension que la resolucion
    BITMAP *buffer = create_bitmap(320, 240);
    // borra la imagen, rellenandola con un color
    clear_to_color(buffer, 0x999999);
    
    // muestra un texto, en una posicion x= 160, y=25, con unos colores
    // 0xFFFFFF = blanco   0x999999 = gris  
    textout_centre_ex(buffer, font, "Mi Primera Ventana", 160, 25, 0xFFFFFF, 0x999999);
    
    // Vuelca el contenido de nuestra imagen sobre la pantalla para mostrarlo  
    blit(buffer, screen, 0, 0, 0, 0, 320, 240);
    
    // para realizar una pausa, espera a que se pulse una tecla
    readkey();
    
    // antes de salir se debe liberar la memoria ocupada por la imagen
    // elimina la imagen creada
    destroy_bitmap(buffer);
    
    return 0;
}



#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>

ALLEGRO_DISPLAY *display = NULL;
ALLEGRO_EVENT_QUEUE *events = NULL;

int main()
{
    al_init();
    al_install_keyboard();
    al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_REQUIRE);
    al_set_new_display_flags(ALLEGRO_WINDOWED);
    display = al_create_display(640, 480);
    al_init_primitives_addon();
 
    events = al_create_event_queue();
    al_register_event_source(events, al_get_keyboard_event_source());
 
    al_clear_to_color(al_map_rgb(0, 128, 128));

    while (al_is_event_queue_empty(events))
    {
        al_draw_filled_circle(rand() % 640, rand() % 480, rand() % 64, al_map_rgb(rand() % 256, 0, 0));
        al_flip_display();
    }

}