3. BIBLIOTECA CLANLIB

 

ClanLib é uma biblioteca multiplataforma de código livre desenvolvida em C++, para o desenvolvimento de jogos.

O objetivo principal da biblioteca é prover um nível de abstração que permita que seus usuários criem jogos sem ter que se preocupar com detalhes de baixo nível, como mixagem de som, leitura de arquivos de imagem, etc.

A ClanLib possui APIs (Interface de Programação de Aplicações) para criação de gráficos em duas e três dimensões, utilização de recursos de som, rede, entrada/saída, GUI (Interface Gráfica do Usuário) e administração de recursos. A ClanLib também é capaz de ler vários formatos de imagem tanto por funções nativas, como também através de funções de outras bibliotecas. Exemplos de formatos suportados são: Targa, PCX, JPEG, PNG e BMP.

Sua natureza orientada a objetos permite ao usuário programar em alto ou baixo nível, eliminando redundância de código e ainda permitindo a programação de funcionalidades avançadas.

Dessa forma, as classes da biblioteca disponibilizam interfaces simples que podem ser customizadas e expandidas. Isso possibilita que o código do jogo seja claro e simples, mesmo se houver utilização de recursos avançados.

Como exemplo de sua facilidade de uso, pode-se citar a reprodução de som. No código abaixo, simplesmente criando um objeto da classe CL_SoundBuffer (linha 1) e chamando uma função dessa classe (linha 2), é possível reproduzir um arquivo de som:

 

1   CL_SoundBuffer som("TIRO.wav");

2   som.play();

3   CL_SoundBuffer_Session playback = som.play();

4   playback.set_frequency(1.2f);

 

O exemplo anterior reproduziu um arquivo de som e posteriormente criou uma sessão (linha 3) que possibilitou o aumento da freqüência em 20% (linha 4).

 

 

Estando disponível atualmente na versão 0.7, a ClanLib suporta os sistemas operacionais Windows 98, Windows 2000, Windows XP e Linux. Nesse texto demonstraremos as alterações necessárias na biblioteca para possibilitar o suporte a Windows NT. Os compiladores suportados são: Visual C++ 6.0 [Visual C++ 6.0, 2005], Visual C++ 7.0 [Visual C++ 7.0, 2005], GCC [GCC, 2005], Borland [Borland, 2005] e MingW [MingW, 2005].

A seguir serão demonstrados os principais recursos oferecidos da ClanLib, que estão agrupados por funcionalidade.