Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

sfml

By: a guest on Dec 1st, 2013  |  syntax: None  |  size: 4.60 KB  |  hits: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <SFML/Graphics.hpp>
  2. #include <SFML/Window.hpp>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6. using namespace sf;
  7.  
  8. int main()
  9. {
  10.  
  11.   const int width = 800;
  12.   const int height= 600;
  13.  
  14.  
  15.  //Window rendering
  16.     sf::Vector2f screenDimensions(800, 600);
  17.     sf::RenderWindow window(sf::VideoMode(screenDimensions.x, screenDimensions.y), "SFML game");
  18.  
  19.     window.setFramerateLimit(60);
  20.  
  21.     sf::Clock frametime;
  22.  
  23.     //in-game screen view
  24.        sf::View view;
  25.  
  26.     view.reset(sf::FloatRect(0, 0, screenDimensions.x, screenDimensions.y));
  27.     view.setViewport(sf::FloatRect(0, 0, 1.0f, 1.0f));
  28.  
  29.     sf::Vector2f position(screenDimensions.x / 2, screenDimensions.y / 2);
  30.  
  31.  
  32.       sf::Texture texture;
  33. if (!texture.loadFromFile("PlayerShip.png"))
  34. {
  35.     // error...
  36. }
  37.  
  38.  
  39.        Texture texture2;
  40.     if (!texture.loadFromFile("PlayerShip2.png"))
  41. {
  42.     // error...
  43. }
  44.        Texture bgtexture;
  45.        sf::Sprite bgsprite;
  46.  
  47.     if(!bgtexture.loadFromFile("BG.png"))
  48.     {
  49.         //error
  50.     }
  51.  
  52.     bgsprite.setTexture(bgtexture);
  53.     bgsprite.setScale(9.0f, (float)screenDimensions.y / bgtexture.getSize().y);
  54.  
  55.     Sprite shape;
  56.     shape.setTexture(texture);
  57.     shape.setTextureRect(sf::IntRect(0, 0, 100, 83));
  58.     shape.setPosition(400.f,40.f);
  59.  
  60.  
  61.     RectangleShape projectile(sf::Vector2f(40., 40.f));
  62.     projectile.setFillColor(sf::Color::Black);
  63.  
  64.  
  65.  
  66.         Font font;
  67.     if (!font.loadFromFile("HelveticaNeue-UltraLight.otf"))
  68.         return EXIT_FAILURE;
  69.  
  70.      Text title("Shooter",font,50);
  71.     title.setPosition(width/2-title.getGlobalBounds().width/2,100);
  72.     title.setColor(Color::Blue);
  73.  
  74.     Text start("Play",font,30);
  75.     start.setPosition(width/2-start.getGlobalBounds().width/2,200);
  76.     start.setColor(Color::Green);
  77.  
  78.     Text start1("Options",font,30);
  79.     start1.setPosition(width/2-start.getGlobalBounds().width/2,300);
  80.     start1.setColor(Color::Red);
  81.  
  82.     Text start2("Quit",font,30);
  83.     start2.setPosition(width/2-start.getGlobalBounds().width/2,400);
  84.     start2.setColor(Color::Black);
  85.  
  86.  
  87.     sf::Vector2f speed (3.f, 3.f);
  88.  
  89.     bool holding = true;
  90.  
  91.     int GameState;
  92.  
  93.     enum states {INTRO, PLAYING, LOST};
  94.  
  95.     GameState = {INTRO};
  96.  
  97.     while (window.isOpen())
  98.     {
  99.         window.clear(Color::White);
  100.         switch(GameState)
  101.         {
  102.             case INTRO:
  103.                 window.draw(title);
  104.                 window.draw(start);
  105.                 window.draw(start1);
  106.                 window.draw(start2);
  107.                 break;
  108.             case PLAYING:
  109.                 window.setView(view);
  110.                 window.draw(shape);
  111.                 break;
  112.         }
  113.         window.display();
  114.  
  115.         sf::Event event;
  116.  
  117.         while (window.pollEvent(event))
  118.         {
  119.             if ( (event.type == Event::Closed) ||
  120.             ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )
  121.                 window.close();
  122.             else
  123.             if ((event.type == Event::KeyPressed) && (GameState == INTRO))
  124.                 GameState=PLAYING;
  125.         }
  126.  
  127.         if (GameState!=PLAYING)
  128.             continue;
  129.  
  130.          float dt = frametime.restart().asSeconds();
  131.  
  132.          if(speed.x > 6.f)
  133.             speed.x -= 1.f;
  134.         else if(speed.x < -6.f)
  135.             speed.x += 1.f;
  136.         else
  137.             speed.x = 0.f;
  138.  
  139.         // Adjust vertical speed
  140.         if(speed.y > 6.f)
  141.             speed.y -= 1.f;
  142.  
  143.            shape.setPosition(shape.getPosition().x + speed.x * dt, shape.getPosition().y + speed.y * dt);
  144.  
  145.            if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
  146.             speed.y = 300;
  147.         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
  148.             speed.x = -290;
  149.         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
  150.             speed.x = 290;
  151.         else if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
  152.             speed.y = -300;
  153.  
  154.  
  155.               if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
  156.               shape.rotate( 200 * dt);
  157.               if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
  158.               shape.rotate(- 200 * dt);
  159.  
  160.  
  161.  
  162.         if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
  163.             window.draw(projectile);
  164.  
  165.         position.x = shape.getPosition().x + 10 - (screenDimensions.x / 2);
  166.         position.y = shape.getPosition().y + 10 - (screenDimensions.y / 2);
  167.  
  168.  
  169.         if(position.x < 0)
  170.             position.x = 0;
  171.         if(position.y < 0)
  172.             position.y = 0;
  173.  
  174.  
  175.  
  176.  
  177.         view.reset(sf::FloatRect(position.x, position.y, screenDimensions.x, screenDimensions.y));
  178.  
  179.         }
  180.  
  181.         return 0;
  182.     }