ago 302013
 

Blz?
Hoje após receber mais um email perguntando sobre os padrões para jogos, resolvi publica-los no site.

O artigo tema da minha monografia da especialização de engenharia de software  e apresentado na conferência latinoamericana de padrões de software SugarLoafPlop’2010 e que em teoria também deve ou deveria estar disponibilizada na ACM Digital Library.

Caiu no esquecimento e na desmotivação. Esperei  até o momento para que pudesse ser publicado entre as obras da ACM, como não sei o estado atual e como o desejo inicial sempre foi fornecer acesso ao conteúdo e principalmente o aprendizado  construído durante a confecção do artigos estou disponibilizando o artigo da monografia junto com os slides da defesa e a revisão criada para o congresso.

Inicialmente minha intenção era criar um verdadeiro Catálogo de Padrões, acredito que poderíamos chegar a um número muito próximo do encontrado no GoF, porém desde a última apresentação do mesmo na conferência em 2010 até  o momento atual,  pude observar que o mundo acadêmico é algo que funciona com passos letárgicos. De fato as duas participações no congresso me ajudaram a ver que participar de tal comunidade não era um caminho natural para mim e que o tempo e prioridade da comunidade de padrões  não eram compatíveis com minha ideologia, o que contribuiu ainda mais para me afastar da meta inicial.

Com relação à publicação do artigo, tive algumas conversas de aconselhamento sobre a disponibilização do material, onde foi citado que o caminho “natural”, “ideal”, “melhor” seria esperar que o artigo fosse publicado na ACM para só depois disponibiliza-lo.

Nos foi apresentado que todos os padrões aceitos pela comunidade de padrões de softwares deveriam ser incluídos na ACM como um passo final de aceitação da proposta de padrão, inclusive após todas as etapas do processo de aprovação tivemos que assinar alguns termos para que o mesmo fosse publicado, o resultado disso é que até hoje não sei se o mesmo foi ou não publicado e nem se o catalogo que iniciei é tido como válido, inclusive  poderia ter sido o primeiro catalogo de padrões para jogos aceito pela comunidade internacional de padrões.

Pelo menos sempre foi à ideia passada nos congressos, que um padrão é padrão de “direito” quando o mesmo é submetido ao árduo processo de validação, refinamento, evolução e apreciação de outros escritos de padrões em uma conferência PLOP e nestes quesitos o catalogo de 5 padrões havia atingido todos os níveis de aceitação. Porém até hoje não sei dizer se são padrões oficialmente reconhecidos e nem se foram os primeiros padrões especificamente para jogos. Minhas pesquisas na época apontavam para este rumo.

Infelizmente percebi que a maioria dos padrões discutidos e apresentados nas conferências não são como nós programadores, desenvolvedores e arquitetos conhecemos, não são padrões de implementação como GoF, Posa ou JEE. São em grande maioria padrões de processo, geração de produtos e qualidade…. Poucos são os padrões para implementação de software, ou seja, são coisas muito diferentes dos idealizados pelo GoF.

O pior de tudo é que após todo o árduo trabalho de finalização, aprovação e suposta publicação dos padrões os mesmos não chegam onde deveriam, ou seja, os desenvolvedores dificilmente sabem que tais padrões existes. Não temos catálogos de fácil acesso e em sua maioria são “guardados” para serem publicados e vendidos em livros ou sites especializados, ou seja, quase sempre tem uma motivação $…

Então pergunto:
Qual o motivo de escrever um padrão? Do que adianta o conhecimento adquirido se o mesmo não chega onde deveria? Porque escrever padrões?  Pra quem eles vão servir?

Minha única resposta até o momento é: “para alimentar nosso próprio ego“. Para quando chegarmos em nossas turmas, encher o peito e falar bem alto para os  todos ouvirem frases do tipo: “Sei tudo sobre padrões, até escrevi padrões“.
Só que a realidade é outra, grande parte destas pessoas apresenta uma vida profissional teórica sem escrever softwares, muito menos por em prática os padrões mais básicos como os apresentados no GoF/J2EE.

Saber de coisas como essas apenas pesaram ainda mais na minha desmotivação o que levou a minha decisão de parar de escrever o catalogo.

Talvez até um dia possa mudar de ideia, mas neste momento prefiro gastar meu pouco tempo com outras prioridades, até mais divertidas e menos estressantes. Bora jogar WoW? 😀  Se mudar de ideia me procure no Azralon, gosto de fazer um pouco de pvp.

Voltando….
Como adepto da filosofia do software livre e do copyleft estou disponibilizando o material produzido para este catálogo.
Desculpem o desabafo, mas era algo que gostaria de avisar para aqueles que tem um perfil mais prático como o meu. Para que se entrarem de cabeça na ideia dos padrões fazer sabendo que vão ter muita briga pela frente.

Se por acaso meu trabalho servir de inspiração ou for usado gostaria de saber, sem obrigação, apenas como falamos aqui no ceará “pedido de amigo”.

Downloads:

 

Aproveitando gostaria de agradecer a todos que ajudaram na confecção do catálogo:

ARAUJO et al.,2006: Allan R. S. Araujo, Juliana M. Silva, Artur F. Mittelbach, Scrum: Novas Regras do Jogo, 2006

BARBOSA,2010: Milton Escóssia Barbosa Neto, Currículo Lattes, 2010. Disponível em: <http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4739143Y7>, Acesso em:10 ago. 2010

BASTOS,2010: Gustavo Bastos, Linkedin, 2010. Disponível em: <http://br.linkedin.com/pub/gustavo-bastos/7/816/290>, Acesso em:10 ago. 2010

BITTENCOURT F.,2010: Fernando Bittencourt, Linkedin, 2010. Disponível em: <http://br.linkedin.com/in/frbitten>, Acesso em:10 ago. 2010

BITTENCOURT R.,2010: Ricardo Bittencourt, Linkedin, 2010. Disponível em: <http://br.linkedin.com/pub/ricardo-bittencourt/5/392/423>, Acesso em:10 ago. 2010

DARKCOLONY,1997: Strategic Simulations, Dark Colony, 1997. Disponível em: <http://pt.wikipedia.org/wiki/Dark_Colony>, Acesso em:13 mai. 2009

DUKITAN,2007: DukItan Software & Games, Web Site, 2007. Disponível em: <http://www.dukitan.com>, Acesso em:12 jul. 2009

DYNAMIC,2008: Dynamic Games, Web Site, 2008. Disponível em: <http://www.dynamicgames.com.br/jogos.html>, Acesso em:20 dez. 2008

EASY2D,2009: Jonatas de Moraes Junior, Easy2D Game Library, 2009. Disponível em: <http://easy2d.sourceforge.net/>, Acesso em:20 nov. 2009

EVANGELISTA,2010: Bruno Evangelista, Linkedin, 2010. Disponível em: <http://www.linkedin.com/in/brunoevangelista>, Acesso em:10 ago. 2010

F2IBUILDER,2007: DukItan Software & Games, F2IBuilder, Font To Image Builder, 2007. Disponível em: <http://f2ibuilder.sourceforge.net>, Acesso em:05 out. 2009

FZPONG,2007: DukItan Software & Games, FZ Pong, 2007. Disponível em: <http://portal.dukitan.com/fzpong>, Acesso em:13 mai. 2009

GAMEDEV,1999: GameDev.net, Web Site, 1999. Disponível em: <http://www.gamedev.net/>, Acesso em:10 jun. 2009

GBF,2005: DukItan Software & Games, GBFramework, 2005. Disponível em: <http://portal.dukitan.com/gbframework>, Acesso em:10 mai. 2009

GDJBR,2009: GDJBR, Grupo de Desenvolvedores de Jogos, 2009. Disponível em: <http://www.gdjbr.com>, Acesso em:10 ago. 2010

GOF,1995: Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, Padrão de projeto de software, 1995. Disponível em: <http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software>, Acesso em:20 nov. 2009

HAWKINGS e ASTLE,2001: Kevin Hawkings, Dave Astle, OpenGL Game Programming, 2001

ICON,2006: ICON Games, Web Site, 2006. Disponível em: <http://www.icongames.com.br/>, Acesso em:10 dez. 2009

J2EE,2002: Oracle / Sun Microsystems, Core J2EE Patterns, 2002. Disponível em: <http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html>, Acesso em:20 nov. 2009

JOGOSPRO,2002: JogosPro, Lista JogosPro, 2002. Disponível em: <http://tech.groups.yahoo.com/group/jogospro/>, Acesso em:10 ago. 2010

LEITE,2010: Daniel Frederico Leite, Linkedin, 2010. Disponível em: <http://br.linkedin.com/pub/daniel-frederico-lins-leite/23/ab9/173>, Acesso em:11 ago. 2010

LIBWIISPRITE,2008: Wii Brew, libwiisprite is a C++ sprite library written for the Wii , 2008. Disponível em: <http://wiibrew.org/wiki/Libwiisprite>, Acesso em:10 dez. 2009

LIRA,2010: Felipe Lira, Linkedin, 2010. Disponível em: <http://br.linkedin.com/in/feliperlira>, Acesso em:10 ago. 2010

MAHTAB e WALI,2000: Ashic Mahtab; Zinat Wali, A Simple Fast Resource Manager using C++ and STL, 2000. Disponível em: <http://www.gamedev.net/reference/programming/features/resourceMngtCppStl>, Acesso em:10 mai. 2009

MARQUES,2010: Daniel de Albuquerque Marques, Currículo Lattes, 2010. Disponível em: <http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4209709D8>, Acesso em:11 ago. 2010

MENDES,2010: Karine Roberta Vieira Mendes, Facebook, 2010. Disponível em: <http://pt-br.facebook.com/profile.php?id=100000819386683>, Acesso em:11 ago. 201

MOREIRA,2010: Mike Moreira, Linkedin, 2010. Disponível em: <http://br.linkedin.com/in/mikemoreira>, Acesso em:10 ago. 2010

MORVICK,2008: Morbid Morvick, Resource Manager Snippet, 2008. Disponível em: <http://gpsnippets.blogspot.com/2008/07/resource-manager-snippet.html>, Acesso em:10 mai. 2009

PDJ,2003: PDJ, Programadores e Desenvolvedores de Jogos, 2003. Disponível em: <http://www.pdj.com.br>, Acesso em:10 ago. 2010

PENGUIN,2004: Icon Games, Penguin Racer, 2004. Disponível em: <http://www.icongames.com.br/pracer>, Acesso em:10 dez. 2009

POSA,1996: Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal , Pattern-Oriented Software Architecture, 1996. Disponível em: <http://www.hillside.net/component/content/article/53-architecture-requirements-patterns-books/178-pattern-oriented-software-architecture-a-system-of-patterns?directory=127>, Acesso em:19 nov. 2009

RIBEIRO,2010: Alexandre Ribeiro de Sá, Perfil Linkedin, 2010. Disponível em: <http://br.linkedin.com/in/ardes>, Acesso em:10 ago. 2010

SANCHES,2009: Bruno Crivelari Sanches, Os softwares de um jogo, 2009. Disponível em: <http://www.pontov.com.br/site/index.php?view=article&id=108>, Acesso em:18 dez. 2009.

SDL,1999: Simple DirectMedia Layer, Web Site, 1999. Disponível em: <http://www.libsdl.org>, Acesso em:12 jun. 2009

SOUZA C.,2010: Cidcley Teixeira de Souza, Currículo Lattes, 2010. Disponível em: <http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4795182D7>, Acesso em:10 ago. 2010

SOUZA J.,2010: Jerffeson Teixeira de Souza, Currículo Lattes, 2010. Disponível em: <http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4794205D4>, Acesso em:10 ago. 2010

SPACESHOOTER,2005: DukItan Software & Games, SpaceShooter, 2005. Disponível em: <http://spaceshooter.dukitan.com>, Acesso em:12 mai. 2009

TECHFRONT,2009: TechFront – Play it Forward, Web Site, 2009. Disponível em: <http://www.techfront.com.br>, Acesso em:20 mai. 2009

TUGA,2008: DukItan Software & Games, TuGA Game API, 2008. Disponível em: <http://tuga-sdk.googlecode.com>, Acesso em:10 jun. 2009

UNIDEV,2002: Unidev, Programação de Jogos, 2002. Disponível em: <http://www.unidev.com.br>, Acesso em:10 ago. 2010

WIKIPEDIA,2010: Wikipédia, Duas Dimensões e Meia – 2.5D, 2010. Disponível em: <http://pt.wikipedia.org/wiki/2.5D>, Acesso em:04 ago. 2010

XNADC,2009: XNA Developer Center, Tutorial 4: Make a Game in 60 Minutes., 2009. Disponível em: <http://msdn.microsoft.com/en-us/library/bb975644.aspx>, Acesso em:10 out. 2009

 

abr 182009
 

Amigos estamos na reta final para o flisol, e como de costume nos últimos quatro anos, temos trabalhado no projeto do CDLivre, este anos apesar dos atrasos conseguimos gerar uma versão que está show, inclusive este anos estamos com algumas novidades, conseguimos um maior apoio da comunidade para seleção dos programas, conseguimos mais hosts para replicação da iso, novo site com uma hospedagem com mais freatures (falta só o domínio, quem sabe ano que vem) e novos materiais de divulgação.

Porém, nem tudo é perfeito, descobrimos recentemente uma pequena incompatibilidade do arquivo iso do CDLivre 4.0 quando a gravação é feita no K3b, o qual aparentemente informa que o arquivo (CDLivre_4.0.iso) não é um arquivo válido, após aproximadamente seis (06) horas de upload conseguimos colocar uma nova iso no ar, com o nome de “CDLivre_4.0.fix.iso” o qual está 100% compatível com a gravação via K3b.

Se você, está organizando um grupo para gravação e distribuição de Softwares Livres para ms-windows no flisol da sua cidade, ou com seus amigos, gostariamos de indicar o CDLivre para que seja avaliado e quem sabe nos ajudar na elaboração ou divulgação 😉

Obrigado pela confiança no nosso trabalho.

Referências:

abr 012009
 

Amigo, é com prazer que anunciamos a liberação oficial do download do CDLivre – Quatro Ponto Zero.

Conseguimos apesar de todas as dificuldades conquistar um novo marco, estamos felizes por completarmos quatro anos de trabalho dedicado a selecionar, montar e apresentar a você alguns dos melhores Softwares Livres disponíveis para que você possa utilizá-lo no seu dia-a-dia na frente do computador.

Pensando nos mais variados usos do computado, chegamos a conclusão que se você necessita de softwares para navegar na Internet (Firefox), conversar com seus amigos (Pidgin, Xchat e AMsn), baixar (TrueDownloader) seus arquivos favoritos  e seus torrents (Azureus), descompacta-los ou compata-los (7zip) para enviar por email (Thunderbird) aos seus amigos enquanto você escuta sua música (Songbird) favorita, e nas horas vagas tentando enfrentar o tédio (Pingus, LMarble, FZPong, IceBreaker) ou enfrentando as ameaças (SpaceShooter, Defendguin), ou explorando novos mundos (The Mana World) ou simplesmente se divertindo com seus amigos (TeeWorlds).

Mas se você é uma pessoa ativa que gosta de explorar ao máximo seu computador e criar você mesmo seus próprios softwares (CodeBlocks, Lazarus, Php, Python) integrados com banco de dados (MySQL, PostgreSQL), utilizando tudo que há de mais moderno no processo de desenvolvimento e com suas ferramentas (BoUML, SVN, CVS, DBDesigner) e metodologias também pensamos em você. Porém se você é uma pessoa altamente criativa que compõe suas próprias músicas (Audacity) ou seus próprios filmes (Jahshaka) o CDLivre também é para você, mas não esqueça de que além de tudo isso você é altamente responsável e precisa ficar em dia com seus relatórios e suas atividades de casa ou apenas a tão desejada monografia da faculdade (BrOffice, AbiWord) o CDLivre também é seu, é meu, é nosso!

Se no final de tudo isso você se sentir satisfeito com o uso dos Softwares contidos no CDLivre, nos ajude divulgando o projeto.

http://cdlivre.dukitan.com
http://cdlivre.dukitan.com/obter/

out 282008
 

Blz!

Para mostrar a um amigo, alguns dos jogos/demos que estou desenvolvendo, coloquei no youtube dois videos, mas cuidado!, É uma super produção caseira 😛

Para quem não conhece temos, o Pancada, o famoso jogo de boxing, que um dia vou terminar, pior que só esta faltando coragem pra fazer a pseudo-ia do jogo 😉

E o TechDemo, Caveman (que nome original), o qual é a base de futuros testes para o desenvolvimento de jogos estilo plataforma, existe alguns problemas relacionados a movimentação, regras de saltos, movimento de queda, mas em fim, é o começo 😉

abr 012008
 

Blz! Amigos acaba de ser oficializado o lançamento do CDLivre 3.0[1] (CDLivre 2008), os interessados em distribuir ou usar o CDLivre podem realizar o download do mesmo, e caso você tenha condições de hospeda-lo nós agradeceríamos, pois inicialmente contamos com poucos servidores para armazenar as imagens do CDLivre.

Mais uma vez agradecemos o apoio da Comunidade Brasileira de Software Livre ;), pois sem vocês nosso trabalho não teria sentido!

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://cdlivre.wordpress.com/2008/04/01/cdlivre-2008/

mar 302008
 

Blz!
Amigos foi anunciada a finalização do CDLivre 3.0[1], porém precisamos de ajuda para disponibiliza-lo online, quem tiver como hospedar entre em contato o mais urgente possível, mais informações veja no site do CDLivre[2]

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://cdlivre.wordpress.com/2008/03/30/cdlivre-30-pronto/
[2]http://cdlivre.wordpress.com/

fev 112008
 

Blz! Amigos, estamos mais uma vez na véspera do FLISOL, e como aconteceu nas últimas duas edições tivemos o lançamento de um CD com Softwares Livres voltados para a plataforma MS-Windows, permitindo assim que mais pessoas conheçam o Software Livre.

Caso você deseje colaborar, participar ou distribuir o CDLivre na sua cidade ou região em qualquer ocasião ou no FLISOL, entre em contato conosco ou sugira e comente sobre os softwares diretamente no site(blog) do projeto.

Mais informações:
http://cdlivre.wordpress.com/2008/02/11/cdlivre-30-iniciando-os-trabalhos/

jan 272008
 

Blz!
Estou começando a lançar os vídeos tutoriais[1] do F2IBuilder[2], o gerador de fontes bitmap, as quais são usadas principalmente em jogos e software multimídias, e estou planejando uma série de vídeos tutoriais ensinando a usar o software. Lembrando que o F2IBuilder é Software Livre, foi desenvolvido em Java e pode ser executando em diversas plataformas principalmente em GNU/Linux e MS-Windows. Agradeço sua ajuda na divulgação 😉

Veja o primeiro vídeo tutorial abaixo:

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://br.youtube.com/watch?v=CdV04IzJlik
[2]http://f2ibuilder.googlecode.com
[3]http://davidferreira-fz.blogspot.com/search/label/F2IBuilder

jan 102008
 

Blz!

Estou trabalhando em algumas coisas bem interessantes 😉
Só para dar um gostinho do que pode vim por ai, vejam:

Assim que tiver mais experiência neste novo ambiente, faço alguns relatos 😉

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://www.youtube.com/watch?v=bpaQ0Q_ifs8
[2]http://www.youtube.com/watch?v=By5-NAdvgDI

out 252007
 

Blz!

Conforme foi sugerido, um amigo perguntou o que de fato era a interface gráfica que eu havia desenvolvido, então resolvi falar um pouco sobre ela e mostrar a versão atual que agora é parte integrante do framework GBF (Gamework’s Brazilian Framework).

O GBF é um framework em C++, criado para o desenvolvimento de jogos 2D (jogos estilos: nes/snes e mega), seu foco é no uso da programação orientada a objetos além de ser multiplataforma (é compatível para compilação em ms-windows e gnu/linux) e poder ser utilizado em jogos que exijam pouco hardware, confesso que posso estar saindo deste trilho, mas por vez ou outra, volto para otimizar o framework e testa-lo no outro pc que tenho (AMD K6-II 500mhz / 192mb RAM / GeForce 2 MX 400 64 mb).

Tem algum tempo que voltei a mexer no projeto “pancada”, o qual nasceu junto com o framework (por volta de 2004) porém ficou meses(anos) parado e surgiu a necessidade de eliminar aquela codificação chata de preparar as janelas de dialogo, como aquelas telas de vitória, créditos e afins.

Sendo assim comecei a rascunhar (como pode ser visto nos links no final deste post) algumas possibilidades para criação de uma interface gráfica bem simples, que visavam só apresentar um texto dentro de uma área de tela, a qual chamei de janela, e que algumas vezes tivesse um botão “OK” para fechar, para não inchar o desenvolvimento com mil e uma possibilidades, tomei como política básica o de desenvolver/suportar apenas o que de fato é necessário, tentando assim talvez otimizar e ganhar um pouco de performance, futuramente pode ser que adicione outros botões (como os utilizados em jogos de RPG/Quests) por hora não é o foco.

Vamos para de enrolar, e mostrar logo como a coisa funciona.
Abaixo podemos ver o diagrama de classes das janelas

O que de fato acontece é que o desenvolvedor utilizando o framework faria apenas isto:

//Criando um padrão visual com janela transparente - segue o pattern Prototype (GoF)
UserInterfaceVisualImagem *uiVisualImagem = new UserInterfaceVisualImagem();
uiVisualImagem->setCorBorda(255,0,0);

//ou caso seja o desejo utilizar uma janela de cor solida (fundo de uma única cor)
//sendo necessário apenas passar para o método "setVisual".
UserInterfaceVisualSolido * uiVisualSolido = new UserInterfaceVisualSolido();
uiVisualSolido->setCorBorda(255,0,0);
uiVisualSolido->setCorFundo(100,200,100);

UserInterfaceWindowTitulo *janelaAjuda;
janelaAjuda = new UserInterfaceWindowTitulo();
janelaAjuda->setPosicao(40,50);
janelaAjuda->setDimensao(560,400);
janelaAjuda->texto.setFonte("texto");
janelaAjuda->texto.setChaveTexto("tela_ajuda_%02d");
janelaAjuda->titulo.setFonte("menu");
janelaAjuda->titulo.setChaveTexto("titulo_ajuda");
janelaAjuda->setVisual(uiVisualImagem->clone());
janelaAjuda->adicionarBotao(new UserInterfaceBotao("menu","botao_enter",SDLK_RETURN));
janelaAjuda->inicializar();

UserInterfaceVisualImagem *uiVisualImagem = new UserInterfaceVisualImagem();
uiVisualImagem->setTipoBackground(BACKGROUND_LINES);
uiVisualImagem->setCorBorda(255,0,0);

UserInterfaceWindowTitulo janelaCredito = new UserInterfaceWindowTitulo();
janelaCredito->setPosicao(40,50);
janelaCredito->adicionarBotao(new UserInterfaceBotao("menu","botao_enter",SDLK_RETURN));
janelaCredito->inicializar();
janelaCredito->setDimensao(560,400);
janelaCredito->texto.setFonte("texto");
janelaCredito->titulo.setChaveTexto("titulo_credito");
janelaCredito->setVisual(uiVisualImagem->clone());
janelaCredito->titulo.setFonte("menu");
janelaCredito->texto.setChaveTexto("tela_credito_%02d");
A classe “UserInterfaceVisualImagem”, provê o efeito do fundo da janela, o qual aparenta ser transparente, talvez até por meio do canal “alpha”, porém muito pelo contrario, a questão é muito simples, ele desenha no fundo da janela uma imagem, que possui alguns pontos que são transparentes, definido pelo que chamamos de colorkey, onde uma cor(RGB) é mapeada para não ser desenhada, no caso o mais comum é a magenta RGB(255,0,255), essa é uma técnica simples que possivelmente é mais rápida para desenhar que a utilização do canal alpha, ganhando talvez alguns pontos de performance. A figura em questão que possui alguns padrões de “transparência” pode ser vista abaixo, e a seleção de qual utilizar é baseada na enumeração “UserInterfaceVisualTipoBackground”.

Na classe “UserInterfaceWindow” e “UserInterfaceWindowTitulo” existe os atributos “texto” e “titulo” o qual possibilita a utilização do recurso de “localização”, que é a mudança de idioma nos textos de acordo com o sistema operacional do usuário(no caso o jogador), para finalizar o método “inicializar” realiza os ajustes finais para determinar algumas características que devem ser executadas apenas uma vez ou o menos possível.

Após entender assim, mesmo por cima o que deve ser feito, temos a parte importante que é “Como de fato eu uso e desenho a janela”, bem para isso vou mostrar o código:

void Jogo::menuCredito()
{
rameLayerManager::getInstance()->getFrameLayer("background")->desenhar();

janelaCredito->executar();

if (janelaCredito->isBotao(UserInterfaceWindow::BOTAO_OK)){
setMenuPrincipal();
}
Este metodo “menuCredito” é provido por meio de uma classe chamada GAT (GBF Application Template) a qual tem o uso apenas recomendado, de fato começa a oferecer uma estrutura pronta para utilização do GBF.

Neste método podemos observar uma chamada ao “FrameLayerManager” (é um singleton), no caso esta chamada é apenas pq queríamos desenhar o cenário do jogo abaixo da nossa janela. (Ver Figura 1)

O desenho de fato da janela é feito pelo método executar, o qual cuida de renderizar o que for necessário da janela e seus componentes. (Ver Figura 2)

O método “isBotao” verifica se o botão “OK”, único suportado no momento foi acionado ou não, (o botão responde pelo código das teclas definida no SDL), onde caso seja acionado executará os comandos informados (Só a título de curiosidade este método faz o sistema de máquina de estados do GAT retornar ao exibição do menu principal).

Para finalizar podemos entender que o que chamamos de janela, basicamente é uma região da tela, a qual podemos fazer alguma manipulação, no caso da GBF e do Pancada tudo que necessitamos é desenhar as bordas da janela, uma imagem de fundo com efeito de “transparência”, que seja capaz de exibir alguma mensagem(texto e título) e que possa responder ao acionamento de algum botão.

Caso tenham interesse em saber mais detalhadamente como funciona ou detalhes da implementação podem entrar em contato 😉

Figuras Anexas
Figura 1: Tela do Menu Principal

Figura 2: Tela de Crédito


T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://davidferreira-fz.blogspot.com/2007/09/gbf-interface-grafica-v05.html
[2]http://davidferreira-fz.blogspot.com/2007/09/rascunho-de-interface-grfica.html
[3]http://pjmoo.wiki.sourceforge.net/
[4]http://pjmoo.wiki.sourceforge.net/GBF
[5]http://www.libsdl.org