Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Game::moveSnake() {
- gameTime = gameClock.getElapsedTime();
- if (gameTime.asSeconds() >= .1) {
- oldX = snakeSegments.at(0).getPosition().x;
- oldY = snakeSegments.at(0).getPosition().y;
- switch(Direction)
- {
- case Up:
- snakeSegments.at(0).setPosition(oldX, oldY-20);
- for (int i = snakeSegments.size(); i > 1; --i) {
- snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
- }
- snakeSegments.at(1).setPosition(oldX, oldY);
- break;
- case Down:
- snakeSegments.at(0).setPosition(oldX, oldY+20);
- for (int i = snakeSegments.size(); i > 1; --i) {
- snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
- }
- snakeSegments.at(1).setPosition(oldX, oldY);
- break;
- case Right:
- snakeSegments.at(0).setPosition(oldX+20, oldY);
- for (int i = snakeSegments.size(); i > 1; --i) {
- snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
- }
- snakeSegments.at(1).setPosition(oldX, oldY);
- break;
- case Left:
- snakeSegments.at(0).setPosition(oldX-20, oldY);
- for (int i = snakeSegments.size(); i > 1; --i) {
- snakeSegments.at(i-1).setPosition(snakeSegments.at(i-2).getPosition().x, snakeSegments.at(i-2).getPosition().y);
- }
- snakeSegments.at(1).setPosition(oldX, oldY);
- break;
- }
- gameClock.restart();
- }
- }
- void Game::spawnCircle() {
- circle.setPosition(getRandomVector());
- mainWindow.draw(circle);
- }
- void Game::eatCircle() {
- spawnCircle();
- snakeSegments.push_back(tail);
- switch(Direction)
- {
- case Up:
- snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x, snakeSegments.at(snakeSegments.size() - 2).getPosition().y + 20);
- break;
- case Down:
- snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x, snakeSegments.at(snakeSegments.size() - 2).getPosition().y - 20);
- break;
- case Right:
- snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x + 20, snakeSegments.at(snakeSegments.size() - 2).getPosition().y);
- break;
- case Left:
- snakeSegments.back().setPosition(snakeSegments.at(snakeSegments.size() - 2).getPosition().x - 20, snakeSegments.at(snakeSegments.size() - 2).getPosition().y);
- break;
- }
- for(std::vector<int>::size_type i = 0; i != snakeSegments.size(); ++i) {
- std::cout << i << ' ';
- std::cout << snakeSegments.at(i).getPosition().x << std::endl;
- std::cout << snakeSegments.at(i).getPosition().y << std::endl;
- }
- score++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement