3 {%ToDo 'AlgoWars.todo'}
\r
7 Vectores in 'Vectores.pas',
\r
8 Objeto in 'Objeto.pas',
\r
9 Tipos in 'Tipos.pas',
\r
10 Espacio in 'Espacio.pas',
\r
11 Coordenadas in 'Coordenadas.pas',
\r
12 Meteorito in 'ov\Meteorito.pas',
\r
13 ObjetoVolador in 'ov\ObjetoVolador.pas',
\r
14 Armas in 'ov\Armas.pas',
\r
15 Nave in 'ov\naves\Nave.pas',
\r
16 NavePropia in 'ov\naves\NavePropia.pas',
\r
17 NaveEnemiga in 'ov\naves\NaveEnemiga.pas',
\r
18 NavesEnemigas in 'ov\naves\NavesEnemigas.pas',
\r
19 Camara in 'Camara.pas';
\r
23 oNavePropia: cNavePropia;
\r
29 oMD: cMisilDirigido;
\r
33 j: integer; // Contador
\r
34 f: text; // Archivo de texto en el que se almacena la informacion.
\r
37 randomize; // Cambia la semilla del generador de numeros aleatorios
\r
39 oEspacio := cEspacio.create;
\r
40 oNavePropia := oEspacio.mGetNavePropia;
\r
41 oMD := cMisilDirigido.create( oNavePropia, cVector.create( 30, -15, -50 ) );
\r
42 oM := cMisil.create( cVector.create( 170, 0, 0 ), cVector.create( -1, 0, 0 ) );
\r
43 oL := cLaser.create( cVector.create( 30, 0, 0 ), cVector.create( -1, 0, 0 ) );
\r
44 oCamM := cCamara.create( oM );
\r
45 oCamMD := cCamara.create( oMD );
\r
46 oCamNP := cCamara.create( oNavePropia );
\r
48 oEspacio.mAgregarObjeto( oMD );
\r
49 oEspacio.mAgregarObjeto( cMisilDirigido.create( oNavePropia, cVector.create( -15, 40, 50 ) ) );
\r
50 oEspacio.mAgregarObjeto( oL );
\r
51 oEspacio.mAgregarObjeto( cLaser.create( cVector.create( 50, 0, 0 ), cVector.create( -1, 0, 0 ) ) );
\r
52 oEspacio.mAgregarObjeto( cLaser.create( cVector.create( 100, 0, 0 ), cVector.create( -1, 0, 0 ) ) );
\r
53 oEspacio.mAgregarObjeto( cLaser.create( cVector.create( 130, 0, 0 ), cVector.create( -1, 0, 0 ) ) );
\r
54 oEspacio.mAgregarObjeto( cLaser.create( cVector.create( 160, 0, 0 ), cVector.create( -1, 0, 0 ) ) );
\r
55 oEspacio.mAgregarObjeto( cMisil.create( cVector.create( 40, 0, 0 ), cVector.create( -1, 0, 0 ) ) );
\r
56 oEspacio.mAgregarObjeto( oM );
\r
58 // Inicializa el archivo de texto
\r
59 assignFile( f, 'dump.txt' );
\r
61 // Imprime la informacion del estado del espacio en este instante
\r
62 write( f, oEspacio.mGetDebugInfo( DI_MAXI ) );
\r
63 write( f, #13 + #10 + '====================> 0 <======================' + #13 + #10 );
\r
64 // Hace que corra el tiempo en el espacio 100 * aDeltaT segundos.
\r
65 for i := 1 to 100 do begin
\r
66 oEspacio.mActualizar; // Actualiza el Espacio
\r
67 // Verifica que la nave propia siga viva
\r
68 if oEspacio.mNavePropiaDestruida then begin // No esta en la lista...
\r
69 writeln( f, 'GAME OVER!!!!' );
\r
70 break; // Si se quita este break se continua con el vuleco de informacion de los instantes posteriores a la
\r
71 // destruccion de la nave propia
\r
73 // Imprime la informacion del estado del espacio en este instante
\r
74 writeln( f, oEspacio.mGetDebugInfo( DI_NORMAL ) );
\r
75 // Imprime la data de la camara
\r
76 oLista := oCamNP.mProcesar( oEspacio.mGetObjetos );
\r
77 for j := 0 to oLista.Count - 1 do begin // recorre la lista
\r
78 proy := tPProy( oLista.Items[j] ); // Castea el puntero
\r
79 writeln( f, proy^.oOV.ClassName, ': ', proy^.oOV.mGetDebugInfo + ', ',
\r
80 proy^.x:10:4, ', ', proy^.y:10:4, ', ', proy^.tam:10:4 );
\r
83 write( f, #13 + #10 + '====================> ' + IntToStr( i ) + ' <======================' + #13 + #10 );
\r
85 // Cierra el archivo
\r