Advertisement
Guest User

Untitled

a guest
Jun 10th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1.  
  2. void Game::moveSnake() {
  3.         gameTime = gameClock.getElapsedTime();
  4.         if (gameTime.asSeconds() >= .1) {
  5.             oldX = snakeSegments.at(0).getPosition().x;
  6.             oldY = snakeSegments.at(0).getPosition().y;
  7.  
  8.             switch(Direction)
  9.             {
  10.             case Up:
  11.                 snakeSegments.at(0).setPosition(oldX, oldY-20);
  12.                 for (int i = snakeSegments.size(); i > 1; --i) {
  13.                     snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
  14.                 }
  15.                 snakeSegments.at(1).setPosition(oldX, oldY);
  16.                 break;
  17.             case Down:
  18.                 snakeSegments.at(0).setPosition(oldX, oldY+20);
  19.                 for (int i = snakeSegments.size(); i > 1; --i) {
  20.                     snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
  21.                 }
  22.                 snakeSegments.at(1).setPosition(oldX, oldY);
  23.                 break;
  24.             case Right:
  25.                 snakeSegments.at(0).setPosition(oldX+20, oldY);
  26.                 for (int i = snakeSegments.size(); i > 1; --i) {
  27.                     snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
  28.                 }
  29.                 snakeSegments.at(1).setPosition(oldX, oldY);   
  30.                 break;
  31.             case Left:
  32.                 snakeSegments.at(0).setPosition(oldX-20, oldY);
  33.                 for (int i = snakeSegments.size(); i > 1; --i) {
  34.                     snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
  35.                 }
  36.                 snakeSegments.at(1).setPosition(oldX, oldY);
  37.                 break;
  38.             }
  39.  
  40.             gameClock.restart();
  41.         }
  42. }
  43.  
  44. void Game::spawnCircle() {
  45.     circle.setPosition(getRandomVector());
  46.     mainWindow.draw(circle);
  47. }
  48.  
  49.  
  50. void Game::eatCircle() {
  51.     spawnCircle();
  52.     snakeSegments.push_back(tail);
  53.    
  54.     switch(Direction)
  55.     {
  56.         case Up:
  57.             snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x, snakeSegments.at(snakeSegments.size() - 2).getPosition().y + 20);
  58.             break;
  59.         case Down:
  60.             snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x, snakeSegments.at(snakeSegments.size() - 2).getPosition().y - 20);
  61.             break;
  62.         case Right:
  63.             snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x + 20, snakeSegments.at(snakeSegments.size() - 2).getPosition().y);
  64.             break;
  65.         case Left:
  66.             snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x - 20, snakeSegments.at(snakeSegments.size() - 2).getPosition().y);
  67.             break;
  68.     }
  69.         for(std::vector<int>::size_type i = 0; i != snakeSegments.size(); ++i) {
  70.         std::cout << i << ' ';
  71.         std::cout << snakeSegments.at(i).getPosition().x << std::endl;
  72.         std::cout << snakeSegments.at(i).getPosition().y << std::endl;
  73.     }
  74.  
  75.  
  76.     score++;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement