Executavel& MiniAplicacao::executa() { // Sons: Vitrola vitrola; FabricaDeSonsFMod fabricaDeSons; CarregadorDeSom carregadorDeSom(fabricaDeSons); ResultadoSonoro resultadoSonoro; vitrola.outroResultado((ResultadoSonoro*) &resultadoSonoro); // Carregando tela: BasicoVisualAllegro visual; CarregadorWizard carregadorWizard = CarregadorWizard(visual.carregador(), visual.resultadoGrafico(), visual.animacoes(), //"dat/camadas.txt"); "dat/camadasDemonstracao.txt"); carregadorWizard.executa(); DesenhistaDeResultadoGraficoNaTela desenhista; desenhista.outraTela((TelaComFundo*) &visual.tela()) .outraFabrica((FabricaDeImagens*) &visual.fabrica()) .outroResultado((ResultadoGrafico*) &visual.resultadoGrafico()); // Gerando o básico da Sinfonia: ScriptDinamica genesis("../../com.ages.jogos.space-dev/deploy/dat/space.xml", visual, resultadoSonoro, carregadorDeSom); Sinfonia* sinfonia = genesis.geraSinfonia(); #ifdef _DEBUG Debug::msg(INFO, "--- Sinfonia gerada: " + *sinfonia); #endif // Teclado: TecladoAllegro* tecladoAllegro = TecladoAllegro ::criaTecladoAllegro(sinfonia->estados(), visual.tempo()); sinfonia->adicionaGeradorDeEventosEspecial(tecladoAllegro, true); // Sinfonia: Thread sinfoniaEmThread(*sinfonia, "Sinfonia em thread"); sinfoniaEmThread.start(); while (!sinfonia->estados().estado(Sinfonia::LIGADA).valor().emBool()); while (sinfonia->estados().estado(Sinfonia::LIGADA).valor().emBool()) { Thread::sleep(Intervalo(10, Milissegundo())); visual.animacoes().executa(); desenhista.executa(); } delete sinfonia; return *this; }
Executavel& Demonstracao::executa() { Vitrola vitrola; FabricaDeSonsFMod fabricaDeSons; CarregadorDeSom carregadorDeSom (fabricaDeSons); ResultadoSonoro resultadoSonoro; vitrola.outroResultado ((ResultadoSonoro*)&resultadoSonoro); carregadorDeSom .carregaSom ("musica1" ,"sons/musica1.mp3") .carregaSom ("musica2" ,"sons/musica2.mp3") .carregaSom ("musica3" ,"sons/musica3.mp3") .carregaSom ("portaAbre" ,"sons/abrePorta.wav") .carregaSom ("portaFecha" ,"sons/fechaPorta.wav") .carregaSom ("janelaAbreFecha","sons/janelaAbreFecha.wav") .carregaSom ("tictac" ,"sons/tictac.wav") .carregaSom ("torradeira" ,"sons/torradeira.wav") .carregaSom ("liquidificador" ,"sons/liquidificador.wav") .carregaSom ("cuco" ,"sons/cuco.wav") .carregaSom ("latido" ,"sons/cachorro.wav") .executa(); // Carregando tela: BasicoVisualAllegro visual; CarregadorWizard carregadorWizard = CarregadorWizard(visual.carregador(), visual.resultadoGrafico(), visual.animacoes(), "dat/camadasDemonstracao.txt"); carregadorWizard.executa(); DesenhistaDeResultadoGraficoNaTela desenhista; desenhista.outraTela((TelaComFundo*) &visual.tela()) .outraFabrica((FabricaDeImagens*) &visual.fabrica()) .outroResultado((ResultadoGrafico*) &visual.resultadoGrafico()); // Gerando o básico da Sinfonia: ScriptDinamica genesis("./dat/demonstracao.xml", visual,resultadoSonoro,carregadorDeSom); Sinfonia* sinfonia = genesis.geraSinfonia(); Debug::msg(INFO, "--- Sinfonia gerada: " + *sinfonia); // Teclado: TecladoAllegro* tecladoAllegro = TecladoAllegro ::criaTecladoAllegro(sinfonia->estados(), visual.tempo()); sinfonia->adicionaGeradorDeEventosEspecial(tecladoAllegro, true); // Sinfonia: Thread sinfoniaEmThread(*sinfonia, "Sinfonia em thread"); sinfoniaEmThread.start(); while (!sinfonia->estados().estado(Sinfonia::LIGADA).valor().emBool()); while (sinfonia->estados().estado(Sinfonia::LIGADA).valor().emBool()) { Thread::sleep(Intervalo(10, Milissegundo())); visual.animacoes().executa(); desenhista.executa(); vitrola.executa(); } delete sinfonia; return *this; }