home *** CD-ROM | disk | FTP | other *** search
- Uses Crt,ModeXLib,Gif,var_3d;
-
- Const
- worldlen=8*3; {tableau des points }
- Worldconst:Array[0..worldlen-1] of Integer =
- (-200,-200,-200,
- -200,-200,200,
- -200,200,-200,
- -200,200,200,
- 200,-200,-200,
- 200,-200,200,
- 200,200,-200,
- 200,200,200);
- surfclen=38; {tableau des faces }
- surfcconst:Array[0..surfclen-1] of Word=
- ($ff00,4, 0,2,6,4,
- $ff01,4, 0,1,3,2,
- $ff02,4, 4,6,7,5,
- $ff00,4, 1,5,7,3,
- $ff03,4, 2,3,7,6,
- $ff04,4, 0,4,5,1,0,0);
-
- { $ff = utiliser des textures, n° dans l'octet inférieur }
-
- Var
- i,j:Word;
-
- Procedure Prep_Textures;
- {charge les variables définissant les textures }
- Begin
- LoadGif('Textures'); {charge l'image avec les textures }
- GetMem(Txt_Pic,64000); {prépare de la mémoire }
- Move(VScreen^,Txt_Pic^,64000); {et y effectue la copie }
- For i:=0 to Txt_Nbre-1 do Begin
- Txt_Data[i]:=Txt_Pic; {pointeur sur données }
- Txt_Offs[i]:=i*64; {définit l'offset }
- End;
- End;
-
- procedure drawworld;external;{dessine l'espace des objets dans la page d'écran courante }
- {$l c:\edition\prog\fr\asm\3dasm.obj}
- {$l c:\edition\prog\fr\asm\poly.obj}
- {$l c:\edition\prog\fr\asm\bres.obj}
- {$l c:\edition\prog\fr\asm\racine.obj}
-
- Begin
- vz:=1000; {profondeur de l'objet }
- vpage:=0; {commence en page 0 }
- init_modex; {active le mode X }
- Prep_Textures;
- LoadGif('logo.gif'); {charge l'image de fond }
- rotx:=0; {rotation initiale }
- roty:=0;
- rotz:=0;
- remplir:=true; {demande de remplissage }
- su_sort:=true; {tri des surfaces activé }
- su_cacher:=true; {dissimule les surfaces cachées }
- verre:=false; {pas de surface en verre }
- p13_2_modex(16000*2,16000); {fond en page 2 VGA }
- repeat
- CopyScreen(vpage,16000*2); {...recopié dans la page courante }
- DrawWorld; {dessine l'espace }
- switch; {active l'écran préparé }
- WaitRetrace; {attend le prochain retour de balayage }
- Inc(rotx); {poursuit la rotation ... }
- If rotx=120 Then rotx:=0;
- Inc(rotz);
- If rotz=120 Then rotz:=0;
- inc(roty);
- if roty=120 Then roty:=0;
- Until KeyPressed; { ... jusqu'à frappe de touche }
- TextMode(3);
- End.
-