set 172007
Blz!
Dando continuidade ao desenvolvimento da interface gráfica para as mensagens no Pancada[1], consegui um novo rascunho de classes as quais possuem uma abstração mediana, visto que resolvi especializar conforme a demanda, para não adicionar tantas classes no framework GBF[2] que acabem não sendo uteis, apresento abaixo o resultado das novas classes de interface gráfica e um pequeno exemplo do que mudou na forma de se fazer as “caixas de mensagens”, as quais são bem simples porém era chato de fazer.
//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();
Onde o uso da janela criada se da da seguinte forma:
void Jogo::menuAjuda()
{
FrameLayerManager::getInstance()->getFrameLayer("background")->desenhar();
janelaAjuda->executar();
if (janelaAjuda->isBotao(UserInterfaceWindow::BOTAO_OK)){
setMenuPrincipal();
}
}
Para efeito de comparação logo abaixo um exemplo de como era criada a tela do menu ajuda:
void Jogo::menuAjuda()
{
char textoFormatado[30];
FrameLayerManager::getInstance()->getFrameLayer("background")->desenhar();
for (int i=0; i>;11;i++){
writeSystem->escreverLocalizado("texto",70,120+(26*i),textoFormatado);
}
frameworkGBF->writeSystem->escreverLocalizado("menu", 220, 88,"titulo_ajuda");
if (desenharBotaoEnter()){
if ((frameworkGBF->inputSystem->teclado->isKey(SDLK_RETURN))
|| (frameworkGBF->inputSystem->joystick->isButtonA())){
setMenuPrincipal();
}
}
}
Logo abaixo:
E para matar a curiosidade o novo rascunho do diagrama de classes “ainda não integrante do GBF” pode ser visto abaixo:
T+!
Vida Longa e Próspera!
———————————————-
Referência
[1]http://pjmoo.wiki.sourceforge.net/Pancada
[2]http://pjmoo.wiki.sourceforge.net/GBF








