sexta-feira, 9 de julho de 2010

CBixo Engine

Ontem comecei a adaptar, para ser usada no Dingoo-linux, uma simples biblioteca de classes criada por R. Heffer e eu para nosso TCC de graduação. Como ela foi desenvolvida em cima da SDL, seu uso será totalmente viável nessa plataforma.

Minha intenção é utilizá-la futuramente para criação de novos jogos próprios. Porém nada impede que outras pessoas também a utilizem, pois a disponibilizarei assim que tudo estiver redondo. É um atrativo especial para os brasileiros, pois toda documentação e também nomenclatura dos métodos estão totalmente em português :P

Para ilustrar seu uso, segue o código usado para o demo que estou fazendo para testar suas funcionalidades:

#include "bblGEE.h"

int main(int argc, char **argv)
{
 // Instaciação das classes
 CVideo video; //gerenciador de vídeo
 CRelogio relogio; // gerenciador de tempo
 CSprite sprite; // sprite
 CAcumulador acum; // acumulador de tempo
 CTexto texto; // manipulador de texto
 CSpriteAnimado nilton; // sprites animados
 CSpriteAnimado daniel;
 CSom som; // gerenciador de som

 // posições x e y
 int x = 0; 
 int y = 0;
 int direcao = 1;
 
 // inicialização dos objetos
 video.inicializa();
 texto.inicializa(320,240,"../data/coure.fon",8);
 acum.inicializa(&relogio, 1000);
 nilton.inicializa(30,30,0,4,&relogio,200);
 daniel.inicializa(30,30,3,5,&relogio,200);

 nilton.carregaImagem("../data/nilton.bmp");
 sprite.carregaImagem("../data/lionmaru.bmp");
 daniel.carregaImagem("../data/Daniel.bmp");
 nilton.corTransparente(255,0,255);
 sprite.corTransparente(255,0,255);
 daniel.corTransparente(255,0,255);
 som.carregaMusica("../data/Dr_Mario_Fever3.ogg");
 som.carregaSom("../data/Blanka-growl.wav",0);

 som.tocaMusica();
 
 while (!acum.terminou())
 {
  sprite.desenha(0,0);
  texto.escreveTexto(itos(relogio.retornaFPS()));
  texto.exibe(290, 0, video.retornaTela(), 255,255,255);
  nilton.anima(200,10);
   
  if (daniel.retornaY() > 220)
  {
   daniel.ajustaQuadros(0,2);
   som.tocaSom(0);
   direcao = -1;
  }
  y += direcao;
  daniel.anima(50, y);

  SDL_Flip(video.retornaTela()); //atualiza tela
  acum.atualiza();
  relogio.atualiza();
  SDL_FillRect(video.retornaTela(),NULL,0); //preenche tela com preto
 }
 
 printf("Terminou!\n");
 return 0;
}

E aqui está o resultado:


Aqui são demonstrados os gerenciadores de vídeo, som e tempo. Além disso, classes de sprite, sprite com animação, texto e acumulador de tempo. Ainda faltam coisas como personagem, objetos e módulo.

Segue o binário para Dingux, assim como o código-fonte mostrado acima, para os curiosos: CBixo Demo

0 comentários:

Postar um comentário