Fade In/Out com fblend no Allegro

Acho que muita gente já deve ter usado aquele famoso código de fade in/out que tem no site da Allegro.cc, certo? Eu mesmo uso ele bastante! Mas como todo mundo também já deve saber, as rotinas de blend da Allegro são lentas, por isso existe a biblioteca addon fblend, que é bem mais rápida.

Se você estiver utilizando ela no seu projeto e desejar usar fade in/out, você pode utilizar estas funções aqui:

void fade_in(BITMAP *bmp_orig, int speed)
{
   BITMAP *bmp_buff;

    if ((bmp_buff = create_bitmap(SCREEN_W, SCREEN_H)))
    {
        int a;
        if (speed <= 0) speed = 16;

        for (a = 0; a < 256; a+=speed)
        {
            clear(bmp_buff);
            fblend_trans(bmp_orig, bmp_buff, 0, 0, a);
            blit(bmp_buff, screen, 0,0, 0,0, SCREEN_W, SCREEN_H);
        }
        destroy_bitmap(bmp_buff);
    }

    blit(bmp_orig, screen, 0,0, 0,0, SCREEN_W, SCREEN_H);
}

void fade_out(int speed)
{
    BITMAP *bmp_orig, *bmp_buff;

    if ((bmp_orig = create_bitmap(SCREEN_W, SCREEN_H)))
    {
        if ((bmp_buff = create_bitmap(SCREEN_W, SCREEN_H)))
        {
            int a;
            blit(screen, bmp_orig, 0,0, 0,0, SCREEN_W, SCREEN_H);
            if (speed <= 0) speed = 16;

            for (a = 255-speed; a > 0; a-=speed)
            {
                clear(bmp_buff);
                fblend_trans(bmp_orig, bmp_buff, 0, 0, a);
                blit(bmp_buff, screen, 0,0, 0,0, SCREEN_W, SCREEN_H);
            }
            destroy_bitmap(bmp_buff);
        }
        destroy_bitmap(bmp_orig);
    }

    rectfill(screen, 0,0, SCREEN_W,SCREEN_H, makecol(0,0,0));
}

Que nada mais são do que aquelas funções que tem no site da A.cc, só que com o fblend, não com o blend do Allegro.

Se você não sabe o que é a fblend, aguarde mais um pouco que logo eu pretendo fazer um tutorialzinho básico de como instalá-la e usá-la! =D

Bom uso!

Anúncios

Uma resposta

  1. […] In/Out com Allegro Há um tempinho atrás eu postei um código de Fade in/out com fblend que eu adaptei do código que peguei no Allegro.cc. Mas eu nem pensei, que tem gente que não […]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: