Guest User

exemple.c

a guest
Mar 17th, 2014
77
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "Firefly.h"
  2.  
  3. void moteur()
  4. {
  5.     Object_3D pyramide;
  6.     Face_3D faces_pyramide[4];
  7.     Line_3D arretes_pyramide[6];
  8.     Point_3D sommets_pyramide[4];
  9.  
  10.     Translation_vector vecteur;
  11.     int tmp = 0;
  12.     int i;
  13.     int focale = -10;
  14.  
  15.     /* Initialisation de la pyramide */
  16.  
  17.     FF_place_point_3D(&sommets_pyramide[0], 0, 15, 15, ML_BLACK);
  18.     FF_place_point_3D(&sommets_pyramide[1], -15, 0, 20, ML_BLACK);
  19.     FF_place_point_3D(&sommets_pyramide[2], 0, 0, 10, ML_BLACK);
  20.     FF_place_point_3D(&sommets_pyramide[3], 15, 0, 20, ML_BLACK);
  21.  
  22.     FF_alloc_line_3D(&arretes_pyramide[0], &sommets_pyramide[0], &sommets_pyramide[1], ML_BLACK);
  23.     FF_alloc_line_3D(&arretes_pyramide[1], &sommets_pyramide[0], &sommets_pyramide[2], ML_BLACK);
  24.     FF_alloc_line_3D(&arretes_pyramide[2], &sommets_pyramide[0], &sommets_pyramide[3], ML_BLACK);
  25.     FF_alloc_line_3D(&arretes_pyramide[3], &sommets_pyramide[1], &sommets_pyramide[2], ML_BLACK);
  26.     FF_alloc_line_3D(&arretes_pyramide[4], &sommets_pyramide[2], &sommets_pyramide[3], ML_BLACK);
  27.     FF_alloc_line_3D(&arretes_pyramide[5], &sommets_pyramide[3], &sommets_pyramide[1], ML_BLACK);
  28.  
  29.     FF_alloc_face_3D(&faces_pyramide[0], &arretes_pyramide[0], &arretes_pyramide[1], &arretes_pyramide[3], ML_TRANSPARENT);
  30.     FF_alloc_face_3D(&faces_pyramide[1], &arretes_pyramide[1], &arretes_pyramide[2], &arretes_pyramide[4], ML_TRANSPARENT);
  31.     FF_alloc_face_3D(&faces_pyramide[2], &arretes_pyramide[0], &arretes_pyramide[2], &arretes_pyramide[5], ML_TRANSPARENT);
  32.     FF_alloc_face_3D(&faces_pyramide[3], &arretes_pyramide[3], &arretes_pyramide[4], &arretes_pyramide[5], ML_TRANSPARENT);
  33.  
  34.  
  35.     /* Affichage */
  36.  
  37.     while(1)
  38.     {
  39.         vecteur.x = vecteur.y = vecteur.z = 0;
  40.  
  41.         if(IsKeyDown(KEY_CTRL_DOWN)) vecteur.y = -1;
  42.         if(IsKeyDown(KEY_CTRL_UP)) vecteur.y = 1;
  43.  
  44.         if(IsKeyDown(KEY_CTRL_LEFT)) vecteur.x = 1;
  45.         if(IsKeyDown(KEY_CTRL_RIGHT)) vecteur.x = -1;
  46.  
  47.         if(IsKeyDown(KEY_CTRL_ALPHA)) vecteur.z = 1;
  48.         if(IsKeyDown(KEY_CTRL_SHIFT)) vecteur.z = -1;
  49.  
  50.         if(IsKeyDown(KEY_CTRL_F1)) focale--;
  51.         if(IsKeyDown(KEY_CTRL_F2)) focale++;
  52.  
  53.         if(IsKeyDown(KEY_CHAR_0)) tmp = 0;
  54.         if(IsKeyDown(KEY_CHAR_1)) tmp = 1;
  55.         if(IsKeyDown(KEY_CHAR_2)) tmp = 2;
  56.         if(IsKeyDown(KEY_CHAR_3)) tmp = 3;
  57.  
  58.         ML_clear_vram();
  59.  
  60.         FF_translate_point(&sommets_pyramide[tmp], vecteur);
  61.         FF_translate_point(&sommets_pyramide[tmp], vecteur);
  62.  
  63.         for(i=0; i<4; i++) FF_draw_face_fixed_camera(faces_pyramide[i], focale);
  64.  
  65.         printVmini(0, 0, tmp);
  66.         printVmini(0, 25, focale);
  67.         printVmini(120, 0, getFps());
  68.  
  69.         ML_display_vram();
  70.  
  71.         setFps(0); // 25 fps
  72.     }
  73. }
RAW Paste Data