コード例 #1
0
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;
}
コード例 #2
0
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;
}