Tag Archives: C++

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

[Review] Desenvolvimento de Jogos Eletrônicos

Comprei esse livro no começo do ano, o que significa que eu to há muito tempo devendo esse review aqui. Nem sei se posso realmente chamar isso de review, é só uma apresentaçãozinha do livro com minha humilde opinião.

DesenvolvimentoJogosEletrônicos O livro aborda o desenvolvimento de games de uma forma bem generalista e prática. Durante a leitura, você trabalha com uma biblioteca de desenvolvimento de games 2D chamada NGL. É uma biblioteca simples, porém até que bem poderosa.

A obra é divida em três partes, a primeira que mostra os conceitos básicos do planejamento e arquitetura de um jogo. A segunda é relacionada à programação, sendo um pouco mais prática, porém ainda teórica. Já a terceira parte é totalmente prática, onde se desenvolve um jogo. Claro que todos os conceitos passados são de fácil implementação em outras ferramentas, principalmente porque a NGL é bem simples e intuitiva.

Várias técnicas muito utilizadas na programação são apresentadas, como técnicas para tratar gráficos: tiles, bricks, layers, sprites, movimentação com vetores, simulação de física, som, tratamento de tempo e inteligência artificial.

Ao fim, programamos um protótipo de game totalmente do zero. O livro mostra cada parte do desenvolvimento com muita transparência.

Considerações Finais

O livro é muito abrangente, e não específico. É indicado a iniciantes em games, que já tenham alguma familiaridade com programação em C++. Todos os conceitos são apresentados muito claramente.

Bom, o livro é bem bacana. Eu aconselho caso você tenha interesse na área, e esteja começando. Caso você já tenha experiência, pode até ser usado como guia de consulta para algumas coisas, como eu faço. Para comprá-lo, clique aqui.

Google Buzz

Contest Mini Games com XNA PRORROGADO!

O Contest de MiniGames, que eu tinha postado antes, está sendo prorrogado até dia 15 Janeiro.

Antes era para o dia 30 de novembro, mas eles fizeram esse favorzinho de esticar o prazo, aí dá tempo das pessoas que estão entrando de férias também participarem.

Agora sim acho que participo mesmo! hehehe

[Via: Sharpgames]

Google Buzz