Guest User

Untitled

a guest
Aug 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. //Не важно
  2. int score = 0;
  3.  
  4. //Не важно
  5.  
  6. void gameController::mainloop()
  7.     {
  8.         //Не важно
  9.  
  10.  
  11.         //go through the linked list
  12.         while(next)
  13.         {
  14.             prev[X_] -= next->move.x;
  15.             prev[Y_] -= next->move.y;
  16.             prev[Z_] -= next->move.z;
  17.  
  18.             //draw each body part
  19.             opengl->drawCubeCellsDelta(
  20.                     prev[X_],
  21.                     prev[Y_],
  22.                     prev[Z_],
  23.                     next->move.x*(float)frames/FRAMES_PER_STEP * ((animooted)?1.0f:0)//animate if enabled
  24.                     next->move.y*(float)frames/FRAMES_PER_STEP * ((animooted)?1.0f:0),
  25.                     next->move.z*(float)frames/FRAMES_PER_STEP * ((animooted)?1.0f:0)
  26.                 );
  27.  
  28.             next = playerSnake->getNext(next);
  29.  
  30.             //Where we can fail
  31.             if  (playerPos[X_] == prev[X_] &&      
  32.             playerPos[Y_] == prev[Y_] &&
  33.             playerPos[Z_] == prev[Z_])
  34.             {
  35.                 if (failFlag == false)
  36.                 {
  37.                 std::cout << "\nYou failed. Total Score: " << score-1;
  38.                 opengl->DisableOpenGL();
  39.                 failFlag = true;
  40.                 }
  41.                 //window->quit();
  42.             }
  43.         }
  44.            
  45.  
  46.  
  47.         //draw the fruit
  48.         if(fruitPos[X_] != 100)
  49.         {
  50.             opengl->drawCubeCells(fruitPos[X_], fruitPos[Y_], fruitPos[Z_]);   
  51.         }
  52.  
  53.         frames++;
  54.         //loadBand(2000);
  55.         opengl->enddraw();
  56.  
  57.         //wait until fixed frame time is reached
  58.         float fps = (float)loopTimer.getTicksRate().QuadPart/loopTimer.getTime().QuadPart;
  59.    
  60.         if(fps > fixedFPS)
  61.         {
  62.             waiter(long(loopTimer.getTicksRate().QuadPart/fixedFPS - loopTimer.getTime().QuadPart));
  63.         }
  64.  
  65.         //fps = (float)loopTimer.getTicksRate().QuadPart/loopTimer.getTime().QuadPart;
  66.         //std::cout<<fps<<std::endl;
  67.  
  68.         loopTimer.reset();
  69.  
  70.     }
  71.  
  72.     int power(int val, unsigned int P)
  73.     {
  74.      int r = val;
  75.      while (--P)
  76.          r *= val;
  77.      return r;
  78.     }
  79.  
  80.     void gameController::spawnFruit(int xr, int yr, int zr)
  81.     {
  82.         //throw fruit randomly
  83.         std::cout << "\rScore " << score;
  84.  
  85.         int xdel = (xr!=0)?(int)rand()%xr:0;
  86.         int ydel = (yr!=0)?(int)rand()%yr:0;
  87.         int zdel = (zr!=0)?(int)rand()%zr:0;
  88.  
  89.         /*int xt = -(int)xr/2 + xdel;
  90.         int yt = -(int)yr/2 + ydel;
  91.         int zt = -(int)zr/2 + zdel;*/
  92.  
  93.         //fruitPos[X_] = -(int)xr/2 + xdel;
  94.         //fruitPos[Y_] = -(int)yr/2 + ydel;
  95.         //fruitPos[Z_] = -(int)zr/2 + zdel;
  96.  
  97.         fruitPos[X_] = power(-1, (int)rand()) * xdel;
  98.         fruitPos[Y_] = power(-1, (int)rand()) * ydel;
  99.         fruitPos[Z_] = power(-1, (int)rand()) * zdel;
  100.  
  101.         score++;
  102.     }
  103.  
  104. }
Add Comment
Please, Sign In to add comment