Title: Code Author: Anonymous Pastebin link: http://pastebin.com/r1YVNDuX First Edit: Tuesday 22nd of October 2013 12:44:41 AM CDT Last Edit: Tuesday 22nd of October 2013 12:44:41 AM CDT #include #include #include   using namespace sf; int main() {     const int width = 640;     const int height= 480;       // Create window     sf::Vector2f screenDimensions(800, 600);       sf::RenderWindow window;     window.create (sf::VideoMode(screenDimensions.x, screenDimensions.y), "SFML game");     // Limit frame-rate     window.setFramerateLimit(60);       // Keep track of the frametime     sf::Clock frametime;       Font font;     if (!font.loadFromFile("HelveticaNeue-UltraLight.otf"))         return EXIT_FAILURE;       // Big floor     sf::RectangleShape floor(sf::Vector2f(1000.f, 50.f));     floor.setPosition(0.f, 400.f);     floor.setFillColor(sf::Color(10, 180, 30));       //Big floor 2     sf::RectangleShape floor2(sf::Vector2f(500.f, 50.f));     floor2.setPosition(1000.f, 700.f);     floor2.setFillColor(sf::Color(10, 200, 30));       //Big Floor 3     sf::RectangleShape floor3(sf::Vector2f(500.f, 50.f));     floor3.setPosition(1000.f, 900.f);     floor3.setFillColor(sf::Color(10, 200, 30));       //platform1     sf::RectangleShape platform(sf::Vector2f(90.f, 50.f));     platform.setPosition(1140.f, 700.f);     platform.setFillColor(sf::Color::Red);       //platform2     sf::RectangleShape platform2(sf::Vector2f(200.f, 50.f));     platform2.setPosition(1600.f, 700.f);     platform2.setFillColor(sf::Color::Yellow);       //platform3       sf::RectangleShape platform3(sf::Vector2f(200.f, 50.f));     platform3.setPosition(1800.f, 700.f);     platform3.setFillColor(sf::Color::Yellow);       //platform4       sf::RectangleShape floor4(sf::Vector2f(1000.f, 50.f));     floor4.setPosition(0.f, 400.f);     floor4.setFillColor(sf::Color(10, 180, 30));       //platform5       sf::RectangleShape floor5(sf::Vector2f(200.f, 50.f));     floor5.setPosition(2200.f, 700.f);     floor5.setFillColor(sf::Color::Green);       //Circle     sf::CircleShape shape(50);     shape.setFillColor(sf::Color(100, 250, 50));       // Movable player     sf::RectangleShape player(sf::Vector2f(40.f, 40.f));     player.setOrigin(20.f, 20.f);     player.setPosition(400.f, 40.f);     player.setFillColor(sf::Color(10, 30, 180));       // Player for level 2     sf::RectangleShape player1(sf::Vector2f(40.f, 40.f));     player1.setOrigin(20.f, 20.f);     player1.setPosition(400.f, 40.f);     player1.setFillColor(sf::Color(10, 30, 180));       // Player speed     sf::Vector2f speed(3.f, 3.f);       // Platform speed     sf::Vector2f platspeed(3.f, 3.f);       // Gravity value     const float gravity = 980.f;       // Check if we're touching any floor/box     bool touching = false;       //view     sf::View view;       view.reset(sf::FloatRect(0, 0, screenDimensions.x, screenDimensions.y));     view.setViewport(sf::FloatRect(0, 0, 1.0f, 1.0f));       sf::Vector2f position(screenDimensions.x / 2, screenDimensions.y / 2);       //view1     sf::View view1;       view1.reset(sf::FloatRect(0, 0, screenDimensions.x, screenDimensions.y));     view1.setViewport(sf::FloatRect(0, 0, 1.0f, 1.0f));         //Intro     Text title("TEST PLATFORMER",font,50);     title.setPosition(width/2-title.getGlobalBounds().width/2,100);     title.setColor(Color::Blue);       Text start("PRESS ENTER TO CONTIUE",font,30);     start.setPosition(width/2-start.getGlobalBounds().width/2,400);     start.setColor(Color::Red);       //Welcome to level 2     Text LEVEL2("WELCOME TO LEVEL 2",font,50);     LEVEL2.setPosition(width/2-title.getGlobalBounds().width/2,100);     LEVEL2.setColor(Color::Blue);         //Level state     enum state {STARTSCREEN, Level1, Level2};       int GameState=STARTSCREEN;       while(window.isOpen())     {         window.clear();         switch(GameState)         {         case STARTSCREEN:             window.draw(title);             window.draw(start);             break;         case Level1:             window.setView(view);             window.draw(player);             window.draw(floor);             window.draw(floor2);             window.draw(floor3);             window.draw(platform);             window.draw(platform2);             window.draw(platform3);             break;         case Level2:             window.setView(view1);             window.draw(player);             window.draw(floor4);             window.draw(floor5);             window.draw(LEVEL2);             break;           }             window.display();             // Get delta time for frame-rate depended movement         float dt = frametime.restart().asSeconds();           // Event handling         sf::Event event;         while(window.pollEvent(event))         {                   if ( (event.type == Event::Closed) ||             ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )                 window.close();             else             if ((event.type == Event::KeyPressed) && (GameState == STARTSCREEN))                 GameState=Level1;         }         if (GameState!=Level1)             continue;           // Slow down horizontal speed         if(speed.x > 6.f)             speed.x -= 3.f;         else if(speed.x < -6.f)             speed.x += 3.f;         else             speed.x = 0.f;           // Adjust vertical speed         if(touching)             speed.y = gravity;         else if(speed.y < gravity)             speed.y += 10.f;         else if(speed.y > gravity)             speed.y = gravity;           // Horizontal movement         if(sf::Keyboard::isKeyPressed(sf::Keyboard::A) && sf::Keyboard::isKeyPressed(sf::Keyboard::D))             speed.x = 0.f;         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))             speed.x = -120.f;         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))             speed.x = 120.f;         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::Return))             GameState!=Level1;             // Jumping         if(sf::Keyboard::isKeyPressed(sf::Keyboard::W) && touching)             speed.y = -300.f;           // Move the player         player.setPosition(player.getPosition().x + speed.x * dt, player.getPosition().y + speed.y * dt);               //Moving the last platform         // Check collision & position adjustment         if(floor.getGlobalBounds().intersects(player.getGlobalBounds())) // Floor         {             player.setPosition(player.getPosition().x, floor.getPosition().y-player.getOrigin().y);             touching = true;         }         else if(floor2.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, floor2.getPosition().y-player.getOrigin().y);             touching = true;         }         else if(platform.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setFillColor(sf::Color::Red);             player.setPosition(player.getPosition().x, platform.getPosition().y-player.getOrigin().y);             touching = true;         }         else if (platform2.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, platform2.getPosition().y-player.getOrigin().y);             touching = true;           }         else if (platform3.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, platform3.getPosition().y-player.getOrigin().y);             touching = true;           }         else if (floor4.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, floor4.getPosition().y-player.getOrigin().y);             touching = true;           }         else if (floor5.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, floor5.getPosition().y-player.getOrigin().y);             touching = true;           }         else if (floor3.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, floor3.getPosition().y-player.getOrigin().y);             touching = true;             GameState=Level2;           }         else if (floor4.getGlobalBounds().intersects(player.getGlobalBounds()))         {             player.setPosition(player.getPosition().x, floor4.getPosition().y-player.getOrigin().y);             touching = true;           }           else // We're not colliding             touching = false;                 position.x = player.getPosition().x + 10 - (screenDimensions.x / 2);         position.y = player.getPosition().y + 10 - (screenDimensions.y / 2);           if(position.x < 0)             position.x = 0;         if(position.y < 0)             position.y = 0;           view.reset(sf::FloatRect(position.x, position.y, screenDimensions.x, screenDimensions.y));           } }