AnimAllegro – Framework simples de animação

Há muito tempo não mexo com Allegro — biblioteca multimedia escrita em C –, mas fuçando em minhas coisas, encontrei algumas classes de suporte que eu utilizava em meus projetos em C++. Resolvi primeiro distribuir algumas classes que fiz para tratar sprites e animações (que eu já tinha postado sobre), então chamei tudo isso de AnimAllegro, um framework bem básico, e aqui vou falar sobre ela, brevemente.

A AnimAllegro é simples em dois sentidos:

  1. Ela está muito simples. Faltam alguns features para que ela possa ficar interessante. Entretanto, ela já é funcional.
  2. Ela é simples, porque fazer um sprite animado tem que ser simples. Vou mostrar alguns exemplos:
AnimSprite sprite;

sprite.AddFrame("standing.bmp");

sprite.AddFrame("walking1.bmp");
sprite.AddFrame("walking2.bmp");

sprite.AddState(new State(0, 0)); // Animações do sprite parado
sprite.AddState(new State(1, 2)); // Animações dos sprite andando
sprite.FitStates();
sprite.SetCurrentState(0); // Escolhe o estado parado.

sprite.SetPosition(10, 10);

Para que ele anime, basta chamarmos o método run, passando um bitmap por parâmetro para que ele exiba o sprite, no looping principal:

sprite.run(bitmap_buffer);

Sempre que precisar mudar de estado, basta chamar o método SetCurrentState. Você pode ver um exemplo completo aqui.

Dá para perceber que ainda ainda falta implementar algumas coisas essenciais, como por exemplo o suporte a spritesheets, aquelas imagem que contém todos os quadros da animação, bem como um suporte aos DATAFILES do Allegro; um melhor controle de velocidade; documentação; etc.

Então aproveitando, gostaria de dizer que o projeto é livre, você pode usar à vontade (de acordo com a licença LGPL), mas que também pode colaborar para melhorar. Basta dar um fork aqui no projeto no Codaset, fazer a alteração que achar conveniente e então enviar.

Ainda tenho muitos outros códigos interessantes em Allegro e C++ que eu criei aqui que gostaria de compartilhar, quem sabe depois eu compilo tudo num framework de jogos. :)

Google Buzz
Compartilhar: Share this post with the world.
  • Twitter
  • Posterous
  • Facebook
  • del.icio.us
  • Digg
  • Friendfeed
  • Google
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati

Posts semelhantes:

  1. Classe pra Animação em Allegro
  2. Fontes TTF no Allegro
  3. Allegro# 0.81
  4. Colorizador de Imagens

One comment

  • 03/03/2011 - 23:58 | Permalink

    Olá Bruno.

    Possuo um site onde escrevo sobre desenvolvimento de jogos com C&C++ Allegro e Unity 3d (o VSoftGames: http://www.vsoftgames.com). Se quiser publicar alguns de seus exemplos interessantes em C++ e Allegro por lá as portas estão abertas (já que o site foca bastante em Allegro)..

    Abraços.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>