Instalando a Allegro 5 no Mac OS (OSX Mavericks)

Padrão

Olá pessoal!

Essa semana precisei instalar a Allegro 5 no Mac devido a um treinamento que estou ministrando e, putz, suei um pouco para fazer tudo funcionar da forma correta! Então vou aqui passar o caminho das pedras pro pessoal que precisa ou quer fazer o mesmo 🙂

O primeiro passo é instalar algum gerenciador de pacotes, como o Homebrew ou o MacPorts. Após instalados, vamos baixar as dependências para a compilação da biblioteca.

sudo port install cmake zlib freetype jpeg libogg physfs libpng flac libtheora +universal

ou

brew install cmake zlib freetype jpeg libogg physfs libpng flac libtheora

Após a obtenção dos pacotes, entra um ajustezinho para que, durante a compilação, o cmake encontre corretamente a biblioteca FreeType (que, por algum motivo é instalada em um local não-padrão). Precisei rodar um comando para criar um link no diretório padrão para ela:

sudo ln -s /usr/local/opt/freetype/include/freetype2 /usr/local/include/freetype

Depois disso, é só baixarmos o código-fonte da Allegro (pode ser a versão 5.0 ou 5.1) e descompactar. Abra o terminal, navegue até a pasta onde ele foi descompactado e digite os seguintes comandos:

mkdir build

cd build

cmake ..

make

sudo make install

E pronto! Ah, uma dica a mais é que, no Mac, precisei sempre adicionar a opção de linker -lallegro_main. Caso contrário, ocorre um erro parecido com o seguinte:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64

Valeu pessoal, até a próxima 🙂

Captura de tela 2014-08-21 23.51.09

Allegro 5.0.7, MinGW 4.6 e Eclipse Juno

Padrão

Olá pessoal! Apesar da irregularidade de posts ultimamente, o blog não morreu não! Estou com sérios problemas de conexão com a Internet em casa, por isso não tenho conseguido postar por aqui. Além disso, estou aguardando sair o novo Visual Studio para Windows Phone 8 pra continuar com a série de posts.

Nas últimas semanas estive ministrando um curso sobre a biblioteca Allegro. Qual não foi a minha surpresa, que a última versão (5.0.7) não traz uma versão já compilada para Windows que suporte a versão 4.4 do MinGW, que por sinal acompanha a instalação “padrão” do Code::Blocks. Percebendo isso, resolvi fazer esse tutorial para instalação da nova versão da biblioteca com o MinGW 4.6, este sim compatível. E aproveitando, já vou mostrar como utilizar o Eclipse como IDE. Apesar de originalmente voltado para Java, é uma ótima IDE para desenvolvimento em praticamente qualquer linguagem, já que é orientado a plugins.

Continue lendo

Tutorial Allegro 5 #16 – Fadein e Fadeout (Alpha Blending)

Padrão

Olá leitores! Este depois de vários posts, chegamos ao fim da série sobre Allegro 5. Como devem ter percebido 0u não, não sou um profundo conhecedor da biblioteca. Apenas criei a série para compartilhar com vocês os assuntos que eu fui estudando, quase a partir do zero. Isso mostra que, sim, com um pouco de persistência, é possível se aventurar por novas ferramentas, mesmo que a documentação seja um pouco escassa. No final das contas, consegui, pelo menos, montar um pequeno guia em português pra quem quer começar a mexer com Allegro 5.

E pra encerrar, vou mostrar um uso dos conhecidos efeitos de transição fadein e fadeout. Procurei deixar as duas funções o mais genéricas possível, para que vocês possam reutilizá-las em outros projetos que vocês porventura vierem a fazer.

Continue lendo!

Tutorial Allegro 5 #15 – Utilizando Caixas de Diálogo Nativas

Padrão

Olá pessoal! Hoje vamos ter um tutorial bastante simples, mas bem legal, mostrando como utilizar caixas de diálogo nativas do sistema operacional em seu aplicativo usando a Allegro 5.

Para o uso de tal recurso, utilizamos a extensão allegro_dialog, que é quem se encarrega de adaptar a chamada à função de exibição ao estilo de janela do seu sistema operacional (Windows, Linux ou MacOS).

Continue lendo!

Tutorial Allegro 5 #14 – Entrada de Texto

Padrão

Olá pessoal! Depois de algum tempo sem os posts da série sobre Allegro, estamos de volta! No exemplo de hoje, vamos ver como obter uma entrada de texto do usuário, já que nativamente não temos uma forma de obter um texto (como um scanf ou cin).

Neste exemplo, vamos simular que você terminou um jogo e fez a melhor pontuação e então precisará digitar seu nome para ir para o ranking. No aplicativo, em vez de utilizarmos o evento ALLEGRO_EVENT_KEY_DOWN, usaremos ALLEGRO_EVENT_KEY_CHAR para obtermos os caracteres relativos a cada uma das teclas. Vamos olhar o código e em seguida comentamos seus detalhes. Lembrando que este exemplo foi baseado do lazyfoo.net, com a diferença de que aqui estamos utilizando Allegro 5 em vez de SDL, e adaptei-o para C em vez de C++. Continue lendo!

Tutorial Allegro 5 #13 – Utilizando Joystick

Padrão

Olá pessoal! Hoje temos mais um post da série sobre Allegro 5, dessa vez tratando sobre como programar uma aplicação para utilizar o joystick como dispositivo de entrada.

A biblioteca Allegro possui suporte nativo a esse tipo de dispositivo. Teoricamente, qualquer joystick USB reconhecido por seu sistema operacional deve funcionar corretamente junto com a biblioteca (pra dizer a verdade, nunca tive a oportunidade de testar um joystick com qualquer outro tipo de conexão).

Na versão 5, temos ainda uma nova funcionalidade: os joysticks podem ser conectados e desconectados mesmo durante a execução do seu aplicativo, bastando apenas realizar uma nova chamada à função al_reconfigure_joysticks(). Além disso, você pode utilizar, também, mais de um joystick ao mesmo tempo (infelizmente ainda não tenho 2 joysticks pra testar e fazer um tutorial… mas quem sabe num futuro próximo?).

Para esse tutorial, testei em um joystick bem mais ou menos que eu tenho aqui (é um Foston, modelo imitação do Dual Shock do Playstation), mas, como disse, deve funcionar com qualquer joystick USB que você tiver por aí.

Continue lendo!

Tutorial Allegro 5 #12 – Ajustando Frames por Segundo FPS

Padrão

Olá pessoal! Voltando com a série sobre programação de jogos usando Allegro 5, hoje vamos falar sobre como ajustar a taxa de FPS (Frames Por Segundo). Geralmente, utilizamos essa técnica para evitar que um jogo seja executado em velocidades diferentes em máquinas com configurações diferentes. Por exemplo, um jogo pode rodar na velocidade “normal” em um PC mais antigo, e rodar extremamente rápido em um PC mais novo, de forma que seja impossível jogá-lo neste PC. Dessa forma, a limitação da taxa de frames é um requisito praticamente indispensável ao criar qualquer jogo.

Para mostrar como isso funciona, e a diferença entre limitarmos ou não a taxa de frames, vamos fazer um aplicativo que exibirá um texto descendo a tela. Ao pressionar a tecla Enter, limitaremos ou não a taxa de frames. Com isso vocês perceberão a diferença do movimento. Este tutorial foi adaptado do site Lazyfoo.net (lá ele utiliza SDL e C++).

Continue lendo!